JavaScript 提供了多种数组筛选方法:filter():创建一个包含通过条件的新数组。find():返回第一个通过条件的元素。findIndex():返回第一个通过条件的元素的索引。every():如果所有元素通过条件,则返回 true。some():如果至少有一个元素通过条件,则返回 true。

JS 中筛选数组的方法
在 JavaScript 中,有多种方法可以用来筛选数组,以下列出最常用的方法:
filter() 方法
- 用法:
filter(callbackFunction) - 回调函数:接受每个数组元素作为参数,并返回一个布尔值。对于通过测试的元素,回调函数返回
true,否则返回false。 - 返回值:一个包含通过测试的所有元素的新数组。
示例:
<code class="js">const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; const evenNumbers = numbers.filter(number => number % 2 === 0); console.log(evenNumbers); // [2, 4, 6, 8, 10]</code>
find() 方法
- 用法:
find(callbackFunction) - 回调函数:与
filter()中的回调函数相同。 - 返回值:第一个通过测试的元素,如果不存在,则返回
undefined。
示例:
<code class="js">const fruits = ["apple", "banana", "orange", "pear", "grape"];
const firstFruitWithA = fruits.find(fruit => fruit.startsWith('a'));
console.log(firstFruitWithA); // apple</code>findIndex() 方法
- 用法:
findIndex(callbackFunction) - 回调函数:与
filter()中的回调函数相同。 - 返回值:通过测试的第一个元素在数组中的索引,如果不存在,则返回
-1。
示例:
<code class="js">const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; const indexOfEvenNumber = numbers.findIndex(number => number % 2 === 0); console.log(indexOfEvenNumber); // 0</code>
every() 方法
- 用法:
every(callbackFunction) - 回调函数:与
filter()中的回调函数相同。 - 返回值:如果数组中所有元素都通过测试,则返回
true;否则返回false。
示例:
<code class="js">const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; const areAllNumbersGreaterThan0 = numbers.every(number => number > 0); console.log(areAllNumbersGreaterThan0); // true</code>
some() 方法
- 用法:
some(callbackFunction) - 回调函数:与
filter()中的回调函数相同。 - 返回值:如果数组中至少有一个元素通过测试,则返回
true;否则返回false。
示例:
<code class="js">const fruits = ["apple", "banana", "orange", "pear", "grape"];
const isThereAnyFruitWithA = fruits.some(fruit => fruit.startsWith('a'));
console.log(isThereAnyFruitWithA); // true</code>










