js.filter() 方法

827 阅读1分钟

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"}