在对象数组/ Javascript中搜索值

时间:2017-03-15 12:18:27

标签: javascript arrays

考虑以下对象数组:

[{ id: 5, name: "Spain"},
 { id: 6, name: "Denmark"},
 { id: 7, name: "USA"},
 { id: 8, name: "Iceland"},
 { id: 9, name: "Greece"},
 { id: 10, name: "UK"},
 { id: 11, name: "Germany"},
 { id: 12, name: "Italy"}]

 [{ id: 13, name: "US"},
 { id: 14, name: "GR"},
 { id: 15, name: "ESP"},
 { id: 16, name: "ICEL"},
 { id: 17, name: "DEN"},
 { id: 18, name: "UK"},
 { id: 19, name: "IT"},
 { id: 20, name: "GER"}]

我想搜索第一个数组并找到第二个数组的相应匹配项。或者甚至更好地从第二个数组中获取一个元素,并针对第一个数组中的所有值搜索它。

  • EX。 GER = {id:11,名称:"德国"}
  • IT = {id:12,姓名:"意大利"}

是否有实施此类搜索的最佳做法?

1 个答案:

答案 0 :(得分:1)

如果您正在寻找数据结构,可以使用一个对象来引用第一个数组的对象。

只要您没有匹配id的关系,就需要手动实现。

countries = {
    ESP: { id: 5, name: "Spain"},
    DEN: { id: 6, name: "Denmark"},
    US: { id: 7, name: "USA"},
    ICEL: { id: 8, name: "Iceland"},
    GR: { id: 9, name: "Greece"},
    UK: { id: 10, name: "UK"},
    GER: { id: 11, name: "Germany"},
    IT: { id: 12, name: "Italy"}
}

通过

访问
countries.ICEL.name // Iceland

country = 'GR'
countries[country].name // Greece