在 ES6 中,新增加了很多数组方法,其中 findIndex()
是一个非常实用的方法。它可以用来查找数组中符合条件的元素的索引值。
语法
findIndex()
方法的语法如下:
arr.findIndex(callback[, thisArg])
其中,callback
是一个函数,用来测试数组中的每个元素。它接受三个参数:element
、index
和 array
。thisArg
则是可选的,用来指定 callback
函数中的 this
值。
应用场景
findIndex()
方法最常用的场景是在数组中查找符合条件的元素的索引值。比如,我们可以使用它来查找数组中第一个大于等于某个值的元素的索引值:
const arr = [1, 3, 5, 7, 9]; const index = arr.findIndex(item => item >= 5); console.log(index); // 2
在上面的代码中,我们先定义了一个数组 arr
,然后使用 findIndex()
方法来查找第一个大于等于 5 的元素的索引值。由于数组中第一个大于等于 5 的元素是 5,它的索引值是 2,因此上述代码的输出结果是 2。
另外,findIndex()
方法还可以用来查找数组中符合条件的元素的个数。我们只需要在 callback
函数中记录符合条件的元素的个数,然后返回 true
或 false
,最后统计个数即可:
// javascriptcn.com 代码示例 const arr = [1, 3, 5, 7, 9]; let count = 0; arr.findIndex(item => { if (item >= 5) { count++; } return false; }); console.log(count); // 3
在上面的代码中,我们定义了一个变量 count
,用来记录符合条件的元素的个数。然后使用 findIndex()
方法来查找数组中符合条件的元素。在 callback
函数中,如果当前元素大于等于 5,就将 count
加 1。最后,我们将 callback
函数的返回值设为 false
,以便让 findIndex()
方法继续查找后面的元素。最终,count
的值就是数组中大于等于 5 的元素的个数。
注意事项
在使用 findIndex()
方法时,需要注意以下几点:
callback
函数必须是纯函数,即它不应该改变数组的原始值。如果数组中不存在符合条件的元素,
findIndex()
方法会返回 -1。findIndex()
方法会从数组的第一个元素开始查找,直到找到符合条件的元素为止。如果数组中存在多个符合条件的元素,它只会返回第一个符合条件的元素的索引值。
总结
findIndex()
方法是一个非常实用的数组方法,它可以用来查找数组中符合条件的元素的索引值。在使用它时,我们需要注意 callback
函数的编写,并且要注意它的返回值和返回结果。希望本文能够对大家学习和使用 findIndex()
方法有所帮助。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6554f254d2f5e1655ded5cf3