📅  最后修改于: 2023-12-03 15:38:39.890000             🧑  作者: Mango
如果我们需要在Javascript中查找对象数组中的属性索引,可以使用Array.prototype.findIndex()函数。这个函数接受一个函数作为参数,该函数将被应用于数组中的每个元素,并返回第一个符合条件的元素的索引。如果没有符合条件的元素,则返回-1。
arr.findIndex(callback(currentValue[, index[, array]])[, thisArg])
参数解释:
比如我们有一个对象数组,包含多个对象,每个对象都有id和name属性。我们需要查找具有指定id值的对象的索引。可以这样实现:
const users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' },
{ id: 4, name: 'David' }
];
const id = 3;
const index = users.findIndex((user) => user.id === id);
console.log(index); // 输出 2
在这个例子中,我们定义了一个id变量,它的值为3,我们使用findIndex()方法查找具有这个id值的对象的索引。我们传递一个回调函数,回调函数接受一个user参数(即数组中的每个元素),回调函数返回true时,findIndex()会返回当前元素的索引。
在本例中,我们将回调函数定义为:(user) => user.id === id
回调函数检查每个元素的id值是否等于指定的id变量。 如果我们没有找到具有这个id的用户,findIndex()将返回-1。