关于javascript:如何循环嵌套对象

How To Loop Through A Nested Object

本问题已经有最佳答案,请猛点这里访问。

嗨,我有一个像这样的嵌套对象

1
2
3
4
5
6
var dogTypes = {
GermanShepard {color:"black and white"},
Beagle       {color:"brown and white"},
cheuwahwah  {color:"green and white"},
poodle:    {color:"purple and white"},
 }

我试图循环遍历嵌套对象中的所有属性,我知道如何使用常规对象而不是嵌套对象来实现,这样如果有人能帮助我,那就太好了。

1
2
3
 for (var key in dogTypes) {
 console.log(key +" :" + dogTypes[key])
 }

这是打印出来的我的代码

1
2
3
4
 GreatDane : [object Object]
   GermanSheppard : [object Object]
   Beagle : [object Object]
   BullDog : [object Object]

在for-in循环中,我将在哪里合并color属性?请帮助!谢谢!


"im trying to loop through all the properties in a nested object"

嵌套对象是常规对象。如果要访问嵌套对象中的所有属性,只需要一个嵌套循环。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var dogTypes = {
  GermanShepard: {
    color:"black and white"
  },
  Beagle: {
    color:"brown and white"
  },
  cheuwahwah: {
    color:"green and white"
  },
  poodle: {
    color:"purple and white"
  },
};

for (var key in dogTypes) {
  for (var key2 in dogTypes[key]) {
    console.log(key, key2, dogTypes[key][key2]);
  }
}

如果嵌套对象中只有一个已知键,则不需要循环,但也不需要嵌套对象。


其简单为:

1
console.log(key +" :" + dogTypes[key].color)

访问颜色属性。如果添加更多级别,可以查看:递归地循环通过对象(树)