Ivan-P
@Ivan-P

Как осуществить перебор в таком массиве?

Есть массив стран такого вида:
countries = [
  {
    "name": "Afghanistan",
    "alpha-2": "AF", "country-code": "004"
  },
  {
    "name": "Åland Islands",
    "alpha-2": "AX",
    "country-code": "248"
  }


Как имея список значений alpha-2 поличить список соответствующих значений name
  • Вопрос задан
  • 217 просмотров
Пригласить эксперта
Ответы на вопрос 4
alphaArr = [];
countries.forEach(function (country) {
    //any logic
    alphaArr.push(country[name]);
});
Ответ написан
Комментировать
@korotkin
Например так:
var res = countries.map(function(o){
return o['alpha-2']
})


Или так, порядок поменяется:
var i = countries.length,
res = [];

while(i--){
  res.push(countries[i]['alpha-2']);
}
Ответ написан
Комментировать
@Aves
function getNames() {
  var alpha2Array = Array.apply(null, arguments);
  return countries.reduce((s, e) => {
    if (~alpha2Array.indexOf(e['alpha-2'])) s.push(e.name);
    return s;
  }, []);
}

console.log(getNames('AX', 'AF'));
console.log(getNames.apply(null, ['AX', 'AF']));
Ответ написан
Комментировать
AMar4enko
@AMar4enko
"Однострочник" для lodash
_(countries)
  .filter({'alpha-2': 'AF'})
  .pluck('name').value();

_(countries)
  .filter(country => alphas.indexOf(country['alpha-2']) > -1)
  .pluck('name').value();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы