语法
array.filter(function(currentValue,index,arr), thisValue)
filter()方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意:filter()不会对空数组进行检测。
注意:filter()不会改变原始数组。
语法:
callback (执行数组中每个值的函数,包含3个参数)
1、currentValue 必需 (当前元素的值)
2、currentIndex 可选 (当前元素的索引值)
3、arr 可选 (调用 filter 的原数组)
thisValue 可选 (对象作为该执行回调时使用,传递给函数,用作 "this" 的值。如果省略了 thisValue ,"this" 的值为 "undefined")
例子
- 返回对象中字段值大于2的字段
var data = {a:1, b:2, c:3, d:4};
var data2=Object.keys(data).filter(function(value) {
return data[value] > 2;
})
console.log(data2);
// [ c , d ]
- 返回数组中所有的偶数
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.filter((value, index, a) => {
return value % 2 == 0;
})
console.log(arr2);
// [ 2 , 4 , 6 , 8 , 10 ]
- 把一个Array中的空字符串删掉
var arr = [ A , , B , null, undefined, C , ];
var r = arr.filter(function (s) {
return s && s.trim(); // 注意:IE9以下的版本没有trim()方法
});
// [ A , B , C ]
可见用
filter()这个高阶函数,关键在于正的确 现一个 筛选 函数。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...