在javascript中使用for循环迭代一个对象数组

时间:2018-04-30 17:02:51

标签: javascript ecmascript-6

我有一个带有一堆属性的对象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循环实现相同的功能?

谢谢。

2 个答案:

答案 0 :(得分:1)

这是使用for of循环的解决方案,您只需要使用此结构调用iterable元素:

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);
}

答案 1 :(得分:0)

尝试使用for...of

之类的内容

 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); 

   }