js实现筛选
JavaScript 实现数组筛选
JavaScript 提供了多种方法来实现数组筛选,以下是几种常见的实现方式:
使用 Array.prototype.filter() 方法
filter() 方法创建一个新数组,包含通过所提供函数实现的测试的所有元素。
const numbers = [1, 2, 3, 4, 5, 6];
const evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers); // 输出: [2, 4, 6]
使用 for 循环手动筛选
可以通过传统的 for 循环遍历数组,手动筛选符合条件的元素。
const numbers = [1, 2, 3, 4, 5, 6];
const evenNumbers = [];
for (let i = 0; i < numbers.length; i++) {
if (numbers[i] % 2 === 0) {
evenNumbers.push(numbers[i]);
}
}
console.log(evenNumbers); // 输出: [2, 4, 6]
使用 Array.prototype.reduce() 方法
reduce() 方法也可以用于筛选数组,虽然不如 filter() 直观。

const numbers = [1, 2, 3, 4, 5, 6];
const evenNumbers = numbers.reduce((acc, num) => {
if (num % 2 === 0) {
acc.push(num);
}
return acc;
}, []);
console.log(evenNumbers); // 输出: [2, 4, 6]
使用箭头函数简化筛选
箭头函数可以让筛选逻辑更加简洁。
const users = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 20 }
];
const adults = users.filter(user => user.age >= 25);
console.log(adults); // 输出: [{ name: 'Alice', age: 25 }, { name: 'Bob', age: 30 }]
使用 Array.prototype.find() 筛选单个元素
如果需要筛选出第一个符合条件的元素,可以使用 find() 方法。

const users = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 20 }
];
const user = users.find(user => user.age === 30);
console.log(user); // 输出: { name: 'Bob', age: 30 }
使用 Array.prototype.some() 和 Array.prototype.every()
some() 和 every() 方法可以用于检查数组中是否至少有一个或所有元素满足条件。
const numbers = [1, 2, 3, 4, 5, 6];
const hasEven = numbers.some(num => num % 2 === 0);
console.log(hasEven); // 输出: true
const allEven = numbers.every(num => num % 2 === 0);
console.log(allEven); // 输出: false
筛选嵌套数组
对于嵌套数组,可以使用 flat() 或 flatMap() 方法结合 filter()。
const nestedNumbers = [[1, 2], [3, 4], [5, 6]];
const evenNumbers = nestedNumbers.flat().filter(num => num % 2 === 0);
console.log(evenNumbers); // 输出: [2, 4, 6]
筛选对象数组的属性
可以筛选对象数组中符合条件的属性。
const users = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 20 }
];
const names = users.map(user => user.name);
console.log(names); // 输出: ['Alice', 'Bob', 'Charlie']
以上方法涵盖了 JavaScript 中常见的数组筛选场景,可以根据具体需求选择合适的方法。






