Лучший способ перебрать объект массива - PullRequest
0 голосов
/ 15 сентября 2018
leagueInfo = {"data":[{"tier":"Gold"},{"tier":"Bronze"}]}

До сих пор я делал 2 для таких циклов:

for (const key of Object.keys(leagueInfo)) {
  console.log('5on5 ranked', leagueInfo[key]);
  // Array (2)  is output

  for (const values of leagueInfo[key]) {
    console.log('5on5 ranked', values.tier );
    // Output is :
    // Gold
    // Bronze
  }
}

Мне действительно нужно 2 цикла или есть более короткий способ сделать это?

Ответы [ 3 ]

0 голосов
/ 15 сентября 2018

Существует множество способов итерации объектов или массивов. И обычно с учетом функций, специально адаптированных для определенных целей. если вы хотите только console.log результат итерации, вы можете использовать .map()

var leagueInfo = {"data":[{"tier":"Gold"},{"tier":"Bronze"}]};

Object.values(leagueInfo).map(function(dataArray) {
     console.log('5on5 ranked', dataArray);
    dataArray.map(function(values) {
       console.log('5on5 ranked', values.tier );
    })
})

А вот ссылка на W3Schools, где вы можете найти все возможные действия с массивами. https://www.w3schools.com/jsref/jsref_obj_array.asp

0 голосов
/ 15 сентября 2018

Существует несколько способов.

Вы можете использовать методы из библиотек lodash или underscore, которые являются точными копиями работы циклов .foreach или for.

Если ваши данные всегда совпадают и похожи на опубликованные, вы можете выполнить следующие действия, чтобы перебрать элементы данных, которые есть в массиве.Помните, что первая итерация, которую вы выполняете, бесполезна, поскольку вы можете получить доступ к свойству напрямую.

var leagueInfo = {"data":[{"tier":"Gold"},{"tier":"Bronze"}]}

leagueInfo.data.forEach((item) => {
  console.log(item);
  console.log(item.tier);
})
0 голосов
/ 15 сентября 2018
leagueInfo.data.forEach(item => console.log(item.tier));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...