📅  最后修改于: 2023-12-03 14:42:24.728000             🧑  作者: Mango
在 JavaScript 中,findIndex()
是一个方法,用于查找数组中满足条件的第一个元素的索引。它接受一个回调函数作为参数,该函数接受每个元素作为参数,并返回一个布尔值。
array.findIndex(callback(element[, index[, array]])[, thisArg])
callback
:每个元素都会调用这个回调函数,它接受以下参数:element
:当前元素。index
(可选):当前元素在数组中的索引。array
(可选):调用 findIndex()
的数组。thisArg
(可选):在 callback
中使用的 this
值。findIndex()
返回第一个满足条件的元素的索引。如果没有找到满足条件的元素则返回 -1。
以下是一个简单的示例,演示如何使用 findIndex()
在数组中查找一个大于 10 的元素的索引:
const array = [5, 12, 8, 130, 44];
const foundIndex = array.findIndex(element => element > 10);
console.log(foundIndex); // Output: 1
另一个示例,演示如何将 findIndex()
与 thisArg
一起使用来在对象数组中查找具有特定属性值的元素的索引:
const fruits = [
{name: 'apple', quantity: 2},
{name: 'banana', quantity: 0},
{name: 'cherries', quantity: 5}
];
const foundIndex = fruits.findIndex(function(fruit) {
return fruit.name === 'banana';
}, this);
console.log(foundIndex); // Output: 1
findIndex()
时,callback
函数中的 this
值默认为 undefined
。如果要在回调函数中使用 this
值,可以传递 thisArg
参数。callback
函数内部无法修改原始数组,但可以修改在回调函数内部传递的元素。findIndex()
是 ECMAScript 6 中新增的方法,在旧版的 JavaScript 中可能不被支持。如果要在旧版的 JavaScript 中使用,可以考虑使用其他方法或使用 polyfill。