Javascript如何按字段搜索数组

Que*_*Tio 6 javascript

我有一个保存这些数据的变量:

{"main":[
  {"id":"123","name":"name 1"},
  {"id":"234","name":"name 2"}

  ]
}
Run Code Online (Sandbox Code Playgroud)

我知道要搜索的数据的ID.

我的问题是......我如何搜索id 234的名称(例如)是上面的数据?

Ray*_*yon 7

使用 Array#filter

filter()方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素.

var object = {
  "main": [{
    "id": "123",
    "name": "name 1"
  }, {
    "id": "234",
    "name": "name 2"
  }]
};
var toFind = "234";
var filtered = object.main.filter(function(el) {
  return el.id === toFind;
});
console.log(filtered);
Run Code Online (Sandbox Code Playgroud)

如果在只有一个对象array,for-loopbreak可能是优选的.

var object = {
  "main": [{
    "id": "123",
    "name": "name 1"
  }, {
    "id": "234",
    "name": "name 2"
  }]
};
var toFind = "234";
for (var i = 0, len = object.main.length; i < len; i++) {
  if (object.main[i].id === toFind) {
    break;
  }
}
console.log(object.main[i].name);
Run Code Online (Sandbox Code Playgroud)