为什么chrome开发人员工具显示0个数组长度(第一行数组[0]),即使其中总共有9个对象?
第一行图像应该像Array [9]一样显示Array [0]
在第二个图像阵列中有13个对象,因此它显示的是Array [13]而不是Array [0]
答案 0 :(得分:2)
在向对象添加对象之前,似乎是在记录数组的输出。像
这样的东西var arr = [];
console.log(arr);
arr.push({}); //pushing blank obj
此处,执行此代码会产生Array[0]
,但如果您尝试length
,它会保留您的对象并返回1
arr.length
。
如果您正在使用某种将项目推送到数组的异步函数,也可能会发生这种情况,这将导致相同的事情。例如,
var a = [];
setTimeout(function(){
a.push({});
a.push({});
}, 1000);
console.log(a);
我认为,这种行为是有意的,Chrome最初要显示的是,您的数组是空的,稍后,项目会在运行时被推送。