javascript - Console.log 输出对象数组

标签 javascript arrays

考虑下一个代码:

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/

相关文章:

javascript - 如何关闭带有 cookie 和 php 到期日期的通知栏?

javascript - 如何将一个数组插入另一个数组内部的对象中?

javascript - 通过 JS 的 PHP 脚本

java - ArrayIndexOutOfBoundsExecption :Android

c - 使用结构的矩阵

javascript - 正则表达式在一个单词后留出空格

java - 如何为数组编写高级变元方法?

javascript - 循环遍历键值是数组的对象(其值是对象)

C++ 如何从一个函数返回多个不同类型的数组

javascript - 使用 jQuery 生成 HTML