数组有元素但长度为0

有谁见过这种奇葩的情况吗,数组有元素,但是在控制台中打印长度显示为0,也不能遍历。
clipboard.png

阅读 17.1k
6 个回答

因为你开始空数组没赋值,赋值之后,因为是地址引用,那个数组已经被修改了。显示零是原来的长度。但包含修改后的结果。

 var arr = [];
 console.log(arr);
 arr.push({x:1},{y:2});
 console.log(arr);

图片描述

数组尽量用console.table或者console.dir去打印吧,结构更清楚。

可能是异步获取赋值,然后没在success里打印吧

初始化的时候指定了数组长度,但是对数组并未赋值。

代码中对该数组有其它length=0的操作

var arr = [1,2];
console.log(arr);

for(var i=0, len = arr.length; i < len; i++) {
    arr.shift();
}

图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题