基于对象中的其他键获取对象的键值

时间:2017-03-23 10:54:27

标签: javascript arrays ecmascript-6

我有一个看起来像这样的数组。我有一个包含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 个答案:

答案 0 :(得分:2)

使用es6:

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

答案 1 :(得分:2)

您可以使用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);