Chrome开发者工具阵列长度

时间:2017-01-09 06:26:23

标签: javascript google-chrome

enter image description here

为什么chrome开发人员工具显示0个数组长度(第一行数组[0]),即使其中总共有9个对象?

第一行图像应该像Array [9]一样显示Array [0]

enter image description here

在第二个图像阵列中有13个对象,因此它显示的是Array [13]而不是Array [0]

1 个答案:

答案 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最初要显示的是,您的数组是空的,稍后,项目会在运行时被推送。