Javascript:对嵌套for循环如何工作感到困惑

Ste*_*ung 5 javascript arrays for-loop

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

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);  


        }

    }
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我认为console.log会给我以下输出:

["04/11/10"]
["86kg"]
["05/12/11"]
["90kg"]
["06/12/11"]
["89kg"]
Run Code Online (Sandbox Code Playgroud)

但是,我实际上得到了这个:

["04/11/10"]
["04/11/10", "86kg"]
["05/12/11"]
["05/12/11", "90kg"]
["06/12/11"]
["06/12/11", "89kg"]
Run Code Online (Sandbox Code Playgroud)

有人能帮我理解这个吗?

编辑:

感谢您的所有回复!

Nik*_*las 9

您正在重新定义newTimes每个循环,并且您在每个列推送时输出到控制台.

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);  
Run Code Online (Sandbox Code Playgroud)

返回:http:["04/11/10", "86kg", "05/12/11", "90kg", "06/12/11", "89kg"] //jsfiddle.net/niklasvh/SuEdt/