我有一个对象数组:
const array1 = [
{'name': 'name', 'age': 12},
{'name': 'name1', 'age': 14},
{'name': 'name2', 'age': 16}
];
// I want to find index of name1
我想找到具有'name':'name1'
的对象的索引。我该怎么做?
答案 0 :(得分:0)
尝试使用以下代码查找索引
使用for循环:
var array1 = [
{'name': 'name', 'age': 12},
{'name': 'name1', 'age': 14},
{'name': 'name2', 'age': 16}
];
var index;
for(i=0;i<array1.length;i++) {
if (array1[i].name == "name1") {
index = i; break;
} }
console.log(index);
使用Filter或find方法的数组如果只有一个匹配条件。
const array1 = [
{'name': 'name', 'age': 12},
{'name': 'name1', 'age': 14},
{'name': 'name2', 'age': 16}
];
var x=array1.find(function(a,i) { if(a.name =="name1") {a.index = i; return i;}}).index
var y= array1.filter(function(a,i) { if(a.name =="name1") { a.index = i;return i;}})[0].index;
console.log(x);
console.log(y);
注意:条件匹配多个位置然后find方法返回第一次出现,filter方法将返回所有出现次数。
答案 1 :(得分:-2)
您可以像这样使用findIndex方法。
const array1 = [{
'name': 'name',
'age': 12
},
{
'name': 'name1',
'age': 14
},
{
'name': 'name2',
'age': 16
}
];
index = array1.findIndex(a => a.name == "name1");
console.log(index);
&#13;