Array.prototype.filter()
是 JavaScript 中的一个数组方法,用于创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。
filter()
方法接收一个回调函数作为参数,这个回调函数会被数组的每个元素调用。如果回调函数返回 true
,那么当前的元素会被添加到新数组中;如果返回 false
,则不会被添加。
let newArray = arr.filter(callback(element[, index[, array]])[, thisArg])
element
:当前正在处理的元素。index
(可选):当前元素的索引。array
(可选):调用 filter()
的数组。thisArg
(可选):执行 callback
时使用的 this
值。let numbers = [1, 2, 3, 4, 5, 6];
// 过滤出所有大于 2 的数字
let filteredNumbers = numbers.filter(function(num) {
return num > 2;
});
console.log(filteredNumbers); // 输出: [3, 4, 5, 6]
// 使用箭头函数简化代码
let evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers); // 输出: [2, 4, 6]
filter()
方法提供了一种简洁的方式来处理数组元素的筛选。let people = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 35 }
];
let youngPeople = people.filter(person => person.age < 30);
console.log(youngPeople); // 输出: [{ name: 'Alice', age: 25 }]
filter()
来去除无效或不需要的数据。问题:filter()
方法没有按预期工作,过滤后的数组不符合要求。
原因:
解决方法:
console.log()
或调试工具跟踪回调函数的执行过程。filter()
方法之前,原数组没有被意外修改。通过以上方法,通常可以定位并解决 filter()
方法使用中的问题。
领取专属 10元无门槛券
手把手带您无忧上云