如何在对象数组中查找索引

时间:2017-09-13 12:45:05

标签: javascript

我有一个对象数组:

const array1 = [
   {'name': 'name', 'age': 12},
   {'name': 'name1', 'age': 14},
   {'name': 'name2', 'age': 16}
];
   // I want to find index of name1

我想找到具有'name':'name1'的对象的索引。我该怎么做?

2 个答案:

答案 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方法。

&#13;
&#13;
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;
&#13;
&#13;