您的位置:首页 > 其它

7.稀疏数组问题

2020-08-22 11:41 148 查看

7.稀疏数组问题

var ary = [0,1,2];
ary[10] = 10;
ary.filter(function(x) { return x === undefined;});

因为这个数组从3-9未定义,所以很容易想到上面数组返回7个undefined的数组。但是由于filter函数作用,首先判断数组当前index是否被设置(ary[index] = value),如果没有的话则会跳过这个index,继续向下执行。所以最终返回是空数组,即:[]

filter()函数 创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

var ages = [32, 11,33, 16, 12,40];
let b = ages.filter(e =>{return e>18});
console.log(b)//[32,33,40],筛选数组中大于18的元素

array.filter(function(currentValue,index,arr), thisValue)
//currentValue	必须。当前元素的值
//index	可选。当前元素的索引值
//arr	可选。当前元素属于的数组对象
//thisValue	可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。如果省略了 thisValue ,"this" 的值为 "undefined"
//filter() 不会对空数组进行检测。
//filter() 不会改变原始数组。
//返回值: 返回数组,包含了符合条件的所有元素。如果没有符合条件的元素则返回空数组。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: