数组有元素但长度为0

zyctinker
  • 21

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

回复
阅读 8.9k
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();
}

图片描述

你知道吗?

宣传栏