在对象数组中查找对象的索引

Ray*_*n C 0 javascript arrays object indexof reactjs

我有这个

arr = [{name: 'pippo',lastname: 'p'},{name: 'mickey',lastname: 'mouse'}]
x ={name: 'mickey', lastname: 'mouse'}
arr.indexOf(x)
Run Code Online (Sandbox Code Playgroud)

为什么 arr.indexOf(x) 返回 -1?是否有另一种解决方案可以在对象数组中找到对象的索引?

Ank*_*wal 5

由于您有对象数组,因此无法直接使用indexOf()来获取该数组中该特定对象的索引。您需要使用,findIndex()以便当数组中有匹配的对象时,它返回该对象的相应索引, else -1

arr = [{name: 'pippo',lastname: 'p'},{name: 'mickey',lastname: 'mouse'}]
x ={name: 'mickey', lastname: 'mouse'}
console.log(arr.findIndex((obj) => obj.name == x.name && obj.lastname === x.lastname));
Run Code Online (Sandbox Code Playgroud)