我知道如何使用indexOf
方法查找数组的索引,还有其他方法:
['aa', 'bb', 'cc']
[{name: 'aa'},{name: 'bb'}]
答案 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"