稀疏数组与密数组
var ary = [0,1,2];
ary[10] = 10;
ary.filter(function(x) { return x === undefined;});
执行结果如何呢?
做这个题目,你需要了解稀疏数组和密集数组
- 译 JavaScript中的稀疏数组与密集数组
- Array/filter
看过源码的同学应该知道,filter源码中,会去判断数组的这个索引值是不是数组的一个属性
数组操作集合->从详细操作js数组到浅析v8中array.js
0 in ary; => true
3 in ary; => false
10 in ary; => true
也就是说 从 3 - 9 都是没有初始化的’坑’!, 这些索引并不存在与数组中. 在 array 的函数调用的时候是会跳过这些’坑’的.
所以答案就是[]
还没有评论,来说两句吧...