通过JavaScript对象数组中的id查找对象?

  • 回答 (2)
  • 关注 (0)
  • 查看 (104)

"有一个数组:

myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}, etc.]

无法改变数组的结构。正在传递一个ID 45,我想获得'bar'该数组中的对象。

我如何在JavaScript或使用jQuery做到这一点?"

黄易音乐战组黄易音乐战组提问于
第三蓝河亚热带生物CallLin回答于

另一个解决方案是创建一个查找对象:

var lookup = {};
for (var i = 0, len = array.length; i < len; i++) {
    lookup[array[i].id] = array[i];
}
... now you can use lookup[id]...

如果你需要做很多的查找,这个非常适用

Tabor

Tencent · Content Operation (已认证)

一个会花式跑脚本的boy~回答于

如果已经在使用jQuery,可以使用用于搜索数组的grep函数:

var result = $.grep(myArray, function(e){ return e.id == id; });

结果是一个包含找到的项目的数组。如果你知道对象总是在那里,而且只发生一次,可以用它result[0].foo来获取值。否则,应该检查结果数组的长度。例:

if (result.length == 0) {
  // not found
} else if (result.length == 1) {
  // access the foo property using result[0].foo
} else {
  // multiple items found
}

扫码关注云+社区

领取腾讯云代金券