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

标签 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 < times[i].length; x++) {
            newTimes.push(times[i][x]);
            console.log(newTimes);  


        }

    }

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

["04/11/10"]
["86kg"]
["05/12/11"]
["90kg"]
["06/12/11"]
["89kg"]

但是,我实际上明白了:

["04/11/10"]
["04/11/10", "86kg"]
["05/12/11"]
["05/12/11", "90kg"]
["06/12/11"]
["06/12/11", "89kg"]

有人能帮我理解吗?

编辑:

感谢您的所有回复!

最佳答案

您在每个循环中重新定义 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);  

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

关于Javascript:对嵌套 for 循环的工作方式感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6237692/

相关文章:

JavaScript 斐波那契分解

javascript - 用 JavaScript 写一个更好的 IF return 语句

JavaScript 数组未定义

c# - C#中的指针三角形

JavaScript:当我尝试使用 DOM 时,我的 for 循环似乎不起作用

javascript - 为两个相似的 React 应用程序使用两个不同的入口点

javascript - D3 中荷兰的自定义数据 map

javascript - 函数和 if else 语句不起作用

数组中嵌套对象的JavaScript递归函数

python - 如何分别绘制重复循环的结果?