根据对象中的另一个键获取数组中某个对象的键的值

3

我有一个数组,它看起来像这样。我有一个包含对象的国家数组,这些对象具有namecode属性。给定国家名称,我想返回该国家的代码。

var countries = [
  {
     name: 'United States', 
     code: 'US'
  },

  {
     name: 'Spain', 
     code: 'ES'
  }
];

我知道我可以像这样做,但我相信一定有更简洁的方法:

var code;

getCountryFromCode(country) {
  for (var i = 0; i < countries.length; i++) {
    if (countries[i].name === country) {
      code = countries[i].code;
    }
  }
}
2个回答

3
你可以使用 Array#find()

var countries = [
  {
     name: 'United States', 
     code: 'US'
  },

  {
     name: 'Spain', 
     code: 'ES'
  }
];
var countryName = "Spain";

console.log(countries.find(c=>c.name===countryName).code);


3

使用ES6:

 countries.find(x => x.name === 'United States').code

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接