JavaScript中的数组filter()
方法用于创建一个新的数组,其中包含符合指定条件的所有元素。该方法会遍历数组,并对每个元素应用指定的测试函数。如果测试函数返回true,则该元素将被包含在新数组中。
filter()
方法的语法如下:
array.filter(callback[, thisArg])
其中,array
是要遍历的数组,callback
是用于测试每个元素的回调函数,thisArg
是可选参数,表示在回调函数中使用的this值。
下面是一个使用filter()
方法的示例:
let numbers = [1, 2, 3, 4, 5];
let evenNumbers = numbers.filter(function(element) {
return element % 2 === 0;
});
console.log(evenNumbers); // 输出:[2, 4]
上述代码会创建一个新的数组evenNumbers
,其中包含原始数组numbers
中所有偶数元素。
你还可以在回调函数中使用其他参数,例如元素索引和原始数组:
let numbers = [1, 2, 3, 4, 5];
let evenNumbers = numbers.filter(function(element, index, array) {
console.log("Element:", element);
console.log("Index:", index);
console.log("Array:", array);
return element % 2 === 0;
});
console.log(evenNumbers); // 输出:[2, 4]
上述代码会在测试每个元素之前,打印元素、索引和原始数组。
需要注意的是,filter()
方法不会改变原始数组,它只是创建一个新的数组,其中包含符合条件的元素。如果没有符合条件的元素,则返回一个空数组。