
数组
|
127
5.14
在数组中搜索满足指定条件的元素
5.14.1
问题
你想在数组中搜索满足特定条件的元素。例如,查找具有指定属性的对象。
5.14.2
方案
使用
find()
或
findIndex()
两个函数式方法中的一个搜索数组。不管使用哪一个方法,
都要传入一个函数,对每个元素进行测试,直至找到匹配结果。
下面的示例查找第一个大于
10
的数。
const
nums = [2, 4, 19, 15, 183, 6, 7, 1, 1];
//
查找第一个大于
10
的值
const
bigNum = nums.find(element => element > 10);
console.log(bigNum); // 19
(第一个匹配结果)
如果不想找出匹配的元素,而是想知道元素的位置,使用类似的
findIndex()
方法。
const
nums = [2, 4, 19, 15, 183, 6, 7, 1, 1];
const
bigNumIndex = nums.findIndex(element => element > 100);
console.log(bigNumIndex); // 4
(第一个匹配结果的索引)
如未找到匹配结果,
find()
方法返回
undefined
,
findIndex()
方法返回
-1
。
5.14.3
讨论
find()
和
findIndex()
方法接受一个回调函数,传入的回调函数最多接受三个参数(当
前迭代的数组元素、该元素的索引和数组自身)。使用箭头句法更紧凑,可在使用
回调函数的位置定义回调函数。