📅  最后修改于: 2023-12-03 14:42:34.900000             🧑  作者: Mango
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 以及更早的版本,请注意兼容性问题。