首页 > 解决方案 > 如何使用标准函数获取元素的 indexOf

问题描述

我想indexOf通过使用标准函数来获取数组中的对象。

尝试1:有效,但效率低下,因为我必须迭代数组两次。

尝试2:不起作用(显然),但表明我想要实现的目标。

const dataSet = [{ name: "obj1" }, { name: "obj2" }, { name: "obj3" }, { name: "obj4" }, { name: "obj5" }]

const attempt1 = dataSet.indexOf(dataSet.find(d => d.name === 'obj3'))

const attempt2 = dataSet.indexOf(d => d.name === 'obj3')

console.log(attempt1)
console.log(attempt2)

标签: javascript

解决方案


您可能正在寻找findIndex

const dataSet = [{ name: "obj1" }, { name: "obj2" }, { name: "obj3" }, { name: "obj4" }, { name: "obj5" }]

const attempt2 = dataSet.findIndex(d => d.name === 'obj3')

console.log(attempt2)

为什么第二个不工作而第一次尝试工作?

indexOf期望搜索一个 searchElement 值,因此在您使用的第一次尝试findindexOf返回一个值,而在第二次尝试中您传递了一个不indexOf期望的函数


推荐阅读