带循环的Putting方法无效:无法将计数器值存入numpay数组求排查
问题:尝试将计数器值插入数组
numpay却毫无效果,错在哪里? 我尝试将计数器的值插入名为numpay的数组中,但完全没效果。请问我的错误在哪里?以下是我写的代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Example-1</title> </head> <body> <p id="demo"></p> <script> function validateForm() { var months=(principal+principal*interestrate*0.01)/monthlypayment; var numpay = new Array(months); for(var i=0;i<=months-1;i++){ numpay[i]=i; } document.getElementById("demo").innerHTML = numpay; } </script> </body> </html>
解答
嘿,我来帮你梳理下问题所在:
核心变量未初始化:你代码里的
principal、interestrate、monthlypayment这几个关键变量完全没赋值啊!如果这些变量是空的,months的计算结果要么是NaN(非数字),要么是无效值,后面的数组操作自然就“哑火”了。得先给它们设好初始值,比如:var principal = 1000; // 示例本金 var interestrate = 5; // 示例年利率 var monthlypayment = 100; // 示例月供金额循环与数组的细节问题:虽然
new Array(months)能创建对应长度的数组,但如果months是小数,数组长度会被自动取整,可能和你预期的不一致。另外循环条件i<=months-1可以简化成i<months,逻辑完全相同,写法更清爽。函数未被触发执行:你定义了
validateForm函数,但页面加载后它不会自动运行!得手动调用它,比如在脚本末尾加一句validateForm();,或者给页面加个按钮,用点击事件触发这个函数。
给你个修正后的完整示例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Example-1</title> </head> <body> <p id="demo"></p> <script> function validateForm() { // 先给变量赋值 var principal = 1000; var interestrate = 5; var monthlypayment = 100; var months=(principal+principal*interestrate*0.01)/monthlypayment; var numpay = new Array(Math.ceil(months)); // 用ceil确保数组长度是整数 for(var i=0;i<numpay.length;i++){ // 直接用数组长度做循环条件更可靠 numpay[i]=i; } document.getElementById("demo").innerHTML = numpay; } // 调用函数,让代码执行起来 validateForm(); </script> </body> </html>
这样修改后,数组就能正常填充计数器值并显示出来啦!
内容的提问来源于stack exchange,提问作者A. Rickman
相关产品推荐
相关产品推荐

