📜  JavaScript 数组 findIndex() 方法(1)

📅  最后修改于: 2023-12-03 14:42:34.900000             🧑  作者: Mango

JavaScript 数组 findIndex() 方法

JavaScript 数组中的 findIndex() 方法用于查找数组中满足指定条件的第一个元素,并返回该元素在数组中的索引。如果没有找到符合条件的元素,则返回 -1。

语法
array.findIndex(function(currentValue, index, arr),thisValue)
参数说明
  • function(currentValue, index, arr): 必需。用于检测数组中每个元素的函数,该函数接收三个参数:
    • currentValue: 当前元素的值
    • index: 当前元素的索引
    • arr: 当前被遍历的数组对象 如果该函数返回 true,则 findIndex() 方法会返回当前元素的索引。如果该函数对数组的每个元素执行后没有返回 true,则 findIndex() 方法会返回 -1。
  • thisValue(可选):在执行回调函数时作为 this 值的对象。
例子

以下的例子展示如何使用 findIndex() 方法查找数组中第一个符合条件的元素的索引。

const arr = [1, 2, 3, 4, 5];

const isEven = (num) => {   // 判断元素是否为偶数
  return num % 2 === 0;
};

const evenIndex = arr.findIndex(isEven);  // 返回第一个偶数元素的索引

console.log(evenIndex);  // 1
注意事项
  • 如果数组中的元素是对象,则可根据对象的属性值进行匹配:
const users = [
  {id: 1, name: 'Alice'},
  {id: 2, name: 'Bob'},
  {id: 3, name: 'Charlie'}
]

const findByName = (name) => {
  return (user) => user.name === name;
}

const index = users.findIndex(findByName('Bob'));

console.log(index); // 1
  • 如果数组的 length 属性值在调用 findIndex() 方法后发生改变,则 findIndex() 方法的遍历结果是不确定的。因此不建议在循环时改变数组本身。

  • findIndex() 方法是 ECMA 2015 标准引入的,不支持 IE11 以及更早的版本,请注意兼容性问题。