Javascript 带循环的放置方法不起作用
我试图将计数器的值插入一个名为numpay的数组中。不幸的是,什么也没发生。我的错误在哪里?下面是我尝试的Javascript 带循环的放置方法不起作用,javascript,arrays,Javascript,Arrays,我试图将计数器的值插入一个名为numpay的数组中。不幸的是,什么也没发生。我的错误在哪里?下面是我尝试的 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Example-1</title> </head> <body> <p id="demo"></p>
<!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.push(i);
text += numpay[i] + "<br>";
}
document.getElementById("demo").innerHTML = text;
}
</script>
</body>
</html>
JS中的数组是基于零的,因此如果使用i==1的.pushi,则值1将进入numpay[0]的槽中 然后要访问该项,必须使用numpay[i-1] 另一件事是,您似乎忘记了在循环开始之前声明和初始化文本。您需要这样做,如果没有,那么变量只存在于循环体内部,并且在每次循环体结束时都会丢失其值 演示: 风险值月数=12; 变量numpay=[];//同样容易 var text=-;
对于var i=1;i1。通过创建一个类似于新数组12的数组,可以在数组中创建12个未定义的条目。然后您将推到阵列的末尾 二,。您还需要使用months var months=12,text;初始化文本
这仍然会在索引0处提供未定义的内容,但我将留给您解决。但是执行numpay[i]=我将覆盖使用数组创建的未定义的 使用如下参数实例化数组时:
var numpay = Array(12);
它将生成一个包含12个未定义元素的数组。当您推送一个新项目时,它将被放置在第13个插槽中
相反,只需这样做:
var text = "";
var months=12;
var numpay = [];
for(var i=1;i<=months;i++)
{
numpay.push(i);
text += numpay[i-1] + "<br>"; //use i-1 here, not i
}
document.getElementById("demo").innerHTML = text;
结果是:
"1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>"
解决现有问题
正如其他人所指出的那样,这样的做法应该奏效:
风险值月数=12;
变量numpay=[];//同样容易
var text=;
对于var i=1;我有任何控制台错误吗?没有任何控制台错误。没有写任何东西。我将分享项目的完整代码。底部有一个额外的大括号。通过创建这样的数组,可以创建未定义的月数。然后您将进入月底。长度数组。您还需要使用months var months=12,text;初始化文本;。我们不需要项目的完整代码,只需要一个.text=;解决了未定义元素的问题。非常感谢
"1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>"