1.for循环
使用传统的 for 循环对数据进行筛选。你可以遍历数组的每个元素,根据筛选条件进行判断,并将符合条件的元素添加到新的数组中。
示例代码:
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = [];
for (let i = 0; i < numbers.length; i++) {
if (numbers[i] % 2 === 0) {
evenNumbers.push(numbers[i]);
}
}
console.log(evenNumbers); // 输出 [2, 4]
2.filter()
filter() 方法创建一个由所有通过测试的元素组成的新数组。它接收一个回调函数作为参数,该函数用于测试每个元素是否符合筛选条件。
示例代码:
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(number => number % 2 === 0);
console.log(evenNumbers); // 输出 [2, 4]
3.find()
find() 方法返回数组中通过测试的第一个元素。它接收一个回调函数作为参数,该函数用于测试每个元素是否符合筛选条件。
示例代码:
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.find(number => number % 2 === 0);
console.log(evenNumbers); // 输出 2
4.findIndex()
findIndex() 方法返回数组中通过测试的第一个元素的索引。如果没有符合条件的元素,则返回 -1。
示例代码:
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.findIndex(number => number % 2 === 0);
console.log(evenNumbers); // 输出 1
5.some()
some() 方法检测数组中是否至少有一个元素满足筛选条件。它接收一个回调函数作为参数,该函数用于测试每个元素是否符合筛选条件。
示例代码:
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.some(number => number % 2 === 0);
console.log(evenNumbers); // true
6.every()
every() 方法检测数组中的所有元素是否都满足筛选条件。它接收一个回调函数作为参数,该函数用于测试每个元素是否符合筛选条件。
示例代码:
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.every(number => number % 2 === 0);
console.log(evenNumbers); // false
7.reduce()
reduce() 方法接收一个回调函数作为参数,用于遍历数组中的所有元素并对它们进行累加或者处理,最后返回一个累加(或处理)结果。在这个回调函数中,我们可以根据筛选条件来判断是否将当前元素添加到累加结果中。
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.reduce((result, number) => {
if (number % 2 === 0) {
result.push(number);
}
return result;
}, []);
console.log(evenNumbers); // 输出 [2, 4]