Итерация массива объектов с использованием цикла for в javascript

1

У меня есть объект x с множеством свойств. Одно из свойств - это heroes которые имеют значение массива объектов. Меня интересует итерация через массив объектов heroes и доступ к ним из определенных свойств.

Вот код:

x = {id: "prim1", description: "planner", heroes: [{name: "arrow", universe: "dc"}, {name: "shields", universe: "marvel"}]};

Я написал простой for loop для достижения того, что хотел:

for (let idx = 0; idx < x.heroes.length; idx++) {
   console.log(x.heroes[idx].universe);
}

Как я могу реализовать то же самое, используя последний цикл ES6 for of цикла?

Спасибо.

Теги:
ecmascript-6

2 ответа

1
Лучший ответ

Здесь решение, использующее for для цикла, вам просто нужно вызвать итерируемый элемент, используя следующую структуру:

for (variable of iterable) {
  console.log(variable)
}

На каждой итерации вы можете получить текущую переменную.

x = {
  id: "prim1",
  description: "planner",
  heroes: [{
    name: "arrow",
    universe: "dc"
  }, {
    name: "shields",
    universe: "marvel"
  }]
};

for (let idx = 0; idx < x.heroes.length; idx++) {
  console.log(x.heroes[idx].universe);
}

for (let o of x.heroes) {
  console.log(o.universe);
}
  • 0
    Спасибо, Неджи :) Я не o.universe , вместо этого я звонил x.heroes[o] который, конечно, возвращал undefined . Глупая ошибка Еще раз спасибо
0

Попробуйте что-нибудь вроде ... для

 var x = {id: "prim1", description: "planner", heroes: [{name: "arrow",  universe: "dc"}, {name: "shields", universe: "marvel"}]};
  
   for (let item of x.heroes) {

     console.log(item.universe); 

   }
  • 0
    вопрос заключается в том, как стимулировать тот же цикл, используя новейшие ES6 for loop
  • 0
    @ Неджи, да, я просто скучаю по слову ES6 для цикла

Ещё вопросы

Сообщество Overcoder
Наверх
Меню