filter()
方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
语法
var newArray = arr.filter(callback(element[, index[, array]])[, thisArg])
1, 参数
callback
用来测试数组的每个元素的函数。返回 true 表示该元素通过测试,保留该元素,false 则不保留。它接受以下三个参数:
element
数组中当前正在处理的元素。
index可选
正在处理的元素在数组中的索引。
array可选
调用了 filter 的数组本身。
thisArg可选
执行 callback 时,用于 this 的值。
2, 示例
筛选排除所有较小的值
function isBigEnough(index){
return element >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// 12,130,44
过滤 JSON 中等于-1
var arr = [
{ id: 15 },
{ id: -1 },
{ id: 0 },
{ id: 3 },
{ id: 12.2 },
{ },
{ id: null },
{ id: NaN },
{ id: 'undefined' }
];
var salesList = arr.filter(function (item) {
return item.id !== -1
});
// 0:{id: 15},1: {id: 0},2: {id: 3},3: {id: 12.2},4: {},5: {id: null},6: {id: NaN},7: {id: "undefined"}