查找数组中对象索引的方法有多少?

时间:2017-09-22 10:57:36

标签: javascript

我知道如何使用indexOf方法查找数组的索引,还有其他方法:

['aa', 'bb', 'cc']
[{name: 'aa'},{name: 'bb'}] 

4 个答案:

答案 0 :(得分:0)

您可以使用lodash使用findIndex方法 https://lodash.com/docs/4.17.4#findIndex

答案 1 :(得分:0)

您可以使用Array.reduce()来制作自定义indexOf();

let arr = ['aa', 'bb', 'cc'];

let result = arr.reduce((a, b, i) => {
    if(a != -1) return a;
    if(b == 'bb'){
        return i;
    }
    return a;
},-1);

console.log(result);

这里你可以比较b的属性和值。如果你想

,则返回该索引

答案 2 :(得分:0)

您可以像Array.prototype.findIndex()那样使用:

const arr = ['aa', 'bb', 'cc'];
const id = arr.findIndex(item => item === 'aa');

对于你的第二个例子[{name: 'aa'},{name: 'bb'}],你能澄清一下你想做什么吗?

答案 3 :(得分:0)

如果您需要查找多个项目,可以创建查找:

a = [ { name: 'aa' }, { name: 'bb' } ] 

for (indexes = {}, i = 0; i < a.length; i++) indexes[a[i].name] = i
   
console.log(indexes['bb'], indexes['cc'] || -1) // "1 -1"