我如何循环嵌套对象

问题描述:

您好有一个嵌套的对象,看起来像这样我如何循环嵌套对象

var dogTypes = { 
GermanShepard {color: "black and white"}, 
Beagle  {color: "brown and white"}, 
cheuwahwah {color: "green and white"}, 
poodle: {color: "purple and white"}, 
} 

IM通过嵌套对象的所有属性试图环路我知道该怎么做,与常规的对象但不是一个嵌套的,所以如果有人能帮助我,这将是伟大的。

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

继承人我的代码打印出

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

我哪里会环路纳入颜色属性在为请帮助!感谢

+3

'console.log(key +“:”+ dogTypes [key] .color)'? –

+0

如果它只有两个级别的深双重for循环会工作,如果不是退化或一个while循环是一个好主意 – TimCodes

+0

https://*.com/questions/2549320/looping-through-an-object-tree-recursively – TimCodes

嵌套对象“IM在嵌套对象通过所有属性试图循环”是一个普通的对象。如果要覆盖嵌套对象中的所有属性,只需要嵌套循环。

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

如果只有一个,在嵌套的对象称为键,那么你并不需要一个循环,但你也并不真的需要一个嵌套的对象。

其简单:

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

访问颜色属性。 如果添加更多关卡,请看:looping through an object (tree) recursively