Recursivamente en bucle a través de un objeto para construir una lista de propiedades
Situación: tengo un objeto grande que contiene varios objetos sub y sub-sub, con propiedades que contienen varios tipos de datos. Para nuestros propósitos, este objeto se ve algo como esto:
var object = {
aProperty: {
aSetting1: 1,
aSetting2: 2,
aSetting3: 3,
aSetting4: 4,
aSetting5: 5
},
bProperty: {
bSetting1: {
bPropertySubSetting : true
},
bSetting2: "bString"
},
cProperty: {
cSetting: "cString"
}
}
Necesito recorrer este objeto y construir una lista de las claves que muestran la jerarquía, para que la lista termine pareciéndose a esto:
aProperty.aSetting1
aProperty.aSetting2
aProperty.aSetting3
aProperty.aSetting4
aProperty.aSetting5
bProperty.bSetting1.bPropertySubSetting
bProperty.bSetting2
cProperty.cSetting
Tengo esta función, que recorre el objeto y escupe las teclas, pero no jerárquicamente:
function iterate(obj) {
for (var property in obj) {
if (obj.hasOwnProperty(property)) {
if (typeof obj[property] == "object") {
iterate(obj[property]);
}
else {
console.log(property + " " + obj[property]);
}
}
}
}
¿Alguien puede decirme cómo hacer esto? Aquí hay un jsfiddle para que te metas con:http://jsfiddle.net/tbynA/