如何循环遍历嵌套对象

8

你好,我有一个嵌套对象,看起来像这样:

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) {
 console.log(key + " : " + dogTypes[key])
 }

这是我的代码,它会打印输出:

 GreatDane : [object Object]
   GermanSheppard : [object Object]
   Beagle : [object Object]
   BullDog : [object Object]

请问在for循环中该如何使用color属性呢?帮忙解答一下,谢谢!


3
console.log(key + " : " + dogTypes[key].color) ? - Alexander O'Mara
如果它只有两个层级,双重循环就可以解决,如果不行,递归或while循环是个好主意。 - TimCodes
https://dev59.com/lHE85IYBdhLWcg3w6oB0 - TimCodes
https://dev59.com/pGsz5IYBdhLWcg3wJUjJ - TimCodes
2个回答

4

"我正在尝试循环遍历嵌套对象中的所有属性"

嵌套对象是一个普通的对象。如果您想要访问嵌套对象中的所有属性,只需要使用嵌套循环即可。

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

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


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接