我想给数组赋值,但是为什么for-in访问不到空数组的数组元素?var arr=new Array(2);for(var i in arr){
arr[i]=10;
}
1 回答
不负相思意
TA贡献1777条经验 获得超10个赞
for-in 语句 可以遍历对象 自身的可枚举属性 和其 原型链上的可枚举属性。
这里得了解对象的属性描述符。。。
通过 Array(num) 生成的数组项(稀疏数组项),没有初始化生成属性描述符,就自然无法遍历。
var arr = new Array(2);Object.getOwnPropertyDescriptor(arr, '0'); // undefinedObject.getOwnPropertyDescriptor(arr, 'length')// {value: 2, writable: true, enumerable: false, configurable: false}
添加回答
举报
0/150
提交
取消