2017-08-29 146 views
0

您好有一個嵌套的對象,看起來像這樣我如何循環嵌套對象

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://stackoverflow.com/questions/2549320/looping-through-an-object-tree-recursively – TimCodes

回答

0

嵌套對象「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]); 
 
    } 
 
}

如果只有一個,在嵌套的對象稱爲鍵,那麼你並不需要一個循環,但你也並不真的需要一個嵌套的對象。