JS【filter过滤器】的用法

在JavaScript中,filter()是一个高阶函数,它是数组(Array)的一部分,可用于创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。

filter()函数的语法如下:

let newArray = arr.filter(callback(element[, index, [array]])[, thisArg])

参数解释:

  • callback:一个函数,用来测试每个元素是否满足某种条件。它接受以下参数:
    • element:数组中正在处理的当前元素。
    • index(可选):数组中正在处理的当前元素的索引。
    • array(可选):filter被调用的数组。
  • thisArg(可选):执行 callback 函数时使用的 this 值。

filter()函数会为数组中的每个元素执行一次 callback 函数,并且创建一个新数组,所有使 callback 返回 true 的元素都会被添加到这个新数组中。原始数组不会被改变。

以下是一个简单的例子,过滤出一个数组中所有的偶数:

let numbers = [1, 2, 3, 4, 5, 6];
let evens = numbers.filter(function(item) {
    return item % 2 === 0;
});
console.log(evens);  // [2, 4, 6]
//或者
const evens = numbers .filter(e=> e%2 === 0) 


在这个例子中,我们将数组 numbers 中的每个元素传递给 filter() 方法。filter() 方法执行的函数检查每个数是否为偶数。如果是,它返回 true,这个数就被添加到 evens 数组中。如果返回 false,则不会被添加。最终,我们将得到一个包含原始数组中所有偶数的新数组。