Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带循环的放置方法不起作用_Javascript_Arrays - Fatal编程技术网

Javascript 带循环的放置方法不起作用

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>

我试图将计数器的值插入一个名为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.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>"