考虑下一个代码:
var rows = [];
for (var i = 0; i < 10; i++) {
rows.push({num:i});
console.log(rows);
}
为什么我会看到下一个控制台输出:
[Object]
[Object, Object]
[Object, Object, Object]
[Object, Object, Object, Object]
[Object, Object, Object, Object, Object]
[Object, Object, Object, Object, Object, Object]
[Object, Object, Object, Object, Object, Object, Object]
etc ...
但是当我展开时,例如第一个对象,我看到数组中的所有 10 个对象,但此时我只放置了第一个对象?所以每次迭代我都会看到数组中的所有 10 个对象
我使用 chrome 开发者工具,但在 firebug 中使用相同的图片,所以我猜我的错误,但无法弄清楚发生了什么
最佳答案
控制台具有对数组的引用,该引用在循环的每次迭代中都会更改。当您检查阵列时,控制台将显示其当前状态,无论实际 console.log 运行时阵列的状态如何。这就是为什么在控制台中检查数组时您总是会看到数组中的所有 10 个对象。
关于javascript - Console.log 输出对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21230299/