Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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:对嵌套for循环的工作方式感到困惑_Javascript_Arrays_For Loop - Fatal编程技术网

Javascript:对嵌套for循环的工作方式感到困惑

Javascript:对嵌套for循环的工作方式感到困惑,javascript,arrays,for-loop,Javascript,Arrays,For Loop,为什么嵌套的for循环的工作方式与以下示例中的工作方式相同: var times = [ ["04/11/10", "86kg"], ["05/12/11", "90kg"], ["06/12/11", "89kg"] ]; for (var i = 0; i < times.length; i++) { var newTimes = []; for(var x = 0; x <

为什么嵌套的
for循环
的工作方式与以下示例中的工作方式相同:

var times = [
            ["04/11/10", "86kg"], 
            ["05/12/11", "90kg"],
            ["06/12/11", "89kg"]
];

for (var i = 0; i < times.length; i++) {
        var newTimes = [];
        for(var x = 0; x < times[i].length; x++) {
            newTimes.push(times[i][x]);
            console.log(newTimes);  


        }

    }
然而,我实际上明白了这一点:

["04/11/10"]
["04/11/10", "86kg"]
["05/12/11"]
["05/12/11", "90kg"]
["06/12/11"]
["06/12/11", "89kg"]
有人能帮我理解这一点吗

编辑:


谢谢你的回复

您在每个循环上重新定义
新时间
,并在每次列推送时输出到控制台

var times = [
            ["04/11/10", "86kg"], 
            ["05/12/11", "90kg"],
            ["06/12/11", "89kg"]
];
 var newTimes = [];
for (var i = 0; i < times.length; i++) {     
        for(var x = 0; x < times[i].length; x++) {
            newTimes.push(times[i][x]);
        }
    }
    console.log(newTimes);  
var时间=[
[“04/11/10”,“86kg”],
[“05/12/11”,“90kg”],
[“06/12/11”,“89公斤”]
];
var newTimes=[];
对于(var i=0;i
返回:
[“04/11/10”、“86kg”、“05/12/11”、“90kg”、“06/12/11”、“89kg”]
请执行以下操作:

var newTimes = [];
for (var i = 0; i < times.length; i++) {
        for(var x = 0; x < times[i].length; x++) {
            newTimes.push(times[i][x]);
            console.log(newTimes);  


        }

    }
var newTimes=[];
对于(var i=0;i

每次通过循环都会重新初始化新的时间。

如果日志语句为

console.log(times[i][x]);

相反,您可以输出完整的新列表
newTimes
,该列表在内部循环外部初始化,并随着每次内部循环迭代而增长。

问题在于内部循环的第二轮,它将第二个元素推到newTimes中。无论如何,我不明白内环的原因。你可以写得简单得多:

var times = [
            ["04/11/10", "86kg"], 
            ["05/12/11", "90kg"],
            ["06/12/11", "89kg"]
];

for (var i = 0; i < times.length; i++) {
    console.log(time[i][0]);  
    console.log(time[i][1]);   
}
var时间=[
[“04/11/10”,“86kg”],
[“05/12/11”,“90kg”],
[“06/12/11”,“89公斤”]
];
对于(var i=0;i
//记住计数器变量的增量
//总是在循环每次运行后执行
对于(变量i=0;i
var times = [
            ["04/11/10", "86kg"], 
            ["05/12/11", "90kg"],
            ["06/12/11", "89kg"]
];

for (var i = 0; i < times.length; i++) {
    console.log(time[i][0]);  
    console.log(time[i][1]);   
}
// remember that the increment of the counter variable
// is always executed after each run of a loop


for (var i = 0; i < n; i++) {
    // some statement(s) to do something.. 

        // initializes child-loop counter in the first run of the parent-loop
        // resets child-loop counter in all following runs of the parent-loop
        // while i is greater than 0 and lower than n

    for (var j = 0; j < p; j++) {
        // some statement(s) to do something..

            // initializes grandchild-loop counter in the first run of the child-loop
            // resets grandchild-loop counter in all following runs of the child-loop
            // while j is greater than 0 and lower than p

        for (var k = 0; k < q; k++) {
            // some statement(s) to do something..
            // or add more internal loop-nestings if you like..
        }
    }
}

// if the counter variables of the descendent-loops were set before the loop-nesting,
// the inner loops would only run once, because the counter would keep the value
// of the abortion condition after the loop is finished