【发布时间】:2011-11-30 20:38:52
【问题描述】:
非稀疏数组本质上是连续的,从 0 到长度为 1,所有索引都应为“in”运算符返回 true。空元素也应该如此。
obj1 = {x:1,y:2};
obj2 = Object.create(obj1);
obj2.z = 5;
var arr = [obj1,obj2,1,,2];
console.log(arr.length); //5
console.log(3 in arr);//false
索引 3 有效。 为什么返回false?
注意:我使用的是最新的 Firefox。
它应该只对没有指定索引号 3 的稀疏数组返回 false。
更新:索引 3 是有效的,所以它应该返回 true。 in 运算符不验证索引位置的值,它只是验证索引的有效性而不是值
【问题讨论】:
标签: javascript