假设我有一个类似的变量:
var vendors = [
{
Name: 'Magenic',
ID: 'ABC'
},
{
Name: 'Microsoft',
ID: 'DEF'
}
];
var v1 = {
Name: 'Magenic',
ID: 'ABC'
};
当我运行以下代码以使用indexOf在
v1
中搜索vendors
时,它始终返回-1
console.log(vendors.indexOf(v1));
即使
v1
存在于vendors
数组中,它也会返回-1。使用js在对象数组中查找对象索引的正确方法是什么?我可以使用循环,但是它很昂贵:(
最佳答案
您可以使用findIndex
:
var vendors = [{ Name: 'Magenic', ID: 'ABC' }, { Name: 'Microsoft', ID: 'DEF' }];
console.log(vendors.findIndex(v => v.ID === 'ABC')) // 0
console.log(vendors.findIndex(v => v.ID === 'DEF')) // 1