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