js实现筛选数组
使用 filter() 方法筛选数组
filter() 是 JavaScript 数组的内置方法,用于根据条件筛选元素。它返回一个新数组,包含所有满足条件的元素。
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers); // 输出: [2, 4]
使用 find() 方法查找单个元素
find() 方法返回数组中第一个满足条件的元素,若未找到则返回 undefined。
const users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' }
];
const user = users.find(user => user.id === 2);
console.log(user); // 输出: { id: 2, name: 'Bob' }
使用 reduce() 方法聚合筛选结果
reduce() 方法可以通过累积逻辑实现复杂筛选,例如统计满足条件的元素数量。
const scores = [85, 90, 78, 92, 88];
const highScoresCount = scores.reduce((count, score) => {
return score > 85 ? count + 1 : count;
}, 0);
console.log(highScoresCount); // 输出: 3
结合 map() 和 filter() 进行链式操作
链式调用可以依次处理数据,例如先筛选再转换。
const products = [
{ id: 1, price: 100 },
{ id: 2, price: 200 },
{ id: 3, price: 50 }
];
const expensiveProductIds = products
.filter(product => product.price > 50)
.map(product => product.id);
console.log(expensiveProductIds); // 输出: [1, 2]
自定义筛选函数实现复杂逻辑
对于需要多条件判断的场景,可以封装自定义函数。

const data = [
{ name: 'John', age: 25, active: true },
{ name: 'Jane', age: 30, active: false }
];
function isEligible(person) {
return person.age > 20 && person.active;
}
const eligiblePeople = data.filter(isEligible);
console.log(eligiblePeople); // 输出: [{ name: 'John', age: 25, active: true }]






