¿Hay alguna mejor opción que pueda usar para profundizar en los objetos, además de hacer un código estático como este?
for(let u in menu) for(let v in menu.list[u]) for(let w in menu.list[u].list[v]) for(let x in menu.list[u].list[v].list[w]) for(let y in menu.list[u].list[v].list[w].list[x]) for(let z in menu.list[u].list[v].list[w].lisit[x].list[y]) console.log(menu.list[u].list[v].list[w].lisit[x].list[y][z])Pude encontrar el algoritmo correcto para esto, el objeto es un poco aleatorio, por lo que probablemente será un desperdicio si el objeto solo tiene dos o incluso en el elemento de la lista.
el objeto se ve así
list: { somethingA: { list: { somethingAA: { list: {} }, somethingAB: { list: { somethingABA: {} somethingABB: { list: { somethingABBA: {} } } } } } }, somethingB: { list: { somethingBA: { list: {} }, somethingBB: { list: {} } } } } Podría poner break , si el último elemento de la lista no tiene un elemento de list , pero ¿cómo si la lista tiene una lista secundaria, más que el bucle estático que hice? que necesito para ser visible.
Gracias
Podría adoptar un enfoque recursivo e iterar solo las propiedades de la list .
const visitList = object => { if ('list' in object) { for (const key in object.list) visitList(object.list[key]); } else { console.log(object); } }, data = { list: { somethingA: { list: { somethingAA: { list: {} }, somethingAB: { list: { somethingABA: {}, somethingABB: { list: { somethingABBA: {} } } } } } }, somethingB: { list: { somethingBA: { list: {} }, somethingBB: { list: {} } } } } }; visitList(data);