Es posible que esta haya sido respondida en el pasado, pero parece que tengo problemas para iterar a través de una estructura anidada y no puedo encontrar nada que me indique la dirección correcta. A continuación se muestra el objeto que estoy tratando de analizar.
const nestedArray = { id : 100 , interval : 1000 , enable : true , topics: [ { topic1: [ { id: 0, 'error-code' : 100 } , { id: 1, status : 200 } , { id: 2, mode : 300 } ] } , { topic2: [ { id: 0, count : 100 } , { id: 1, total : 200 } , { id: 2, operation : 300 } ] } ] } Quiero iterar nestedArray y de los topics extraer el nombre del tema, es decir, "topic1" y la clave (nombre) en las propiedades de valor clave asociadas en la matriz anidada, es decir, "id" y "código de error".
Soy nuevo en esto y probé Object.entries, Object.keys, Object.values y una función recursiva, etc., pero nunca obtuve los valores que necesito o error porque el método no se puede aplicar al Objeto. Agradecería alguna explicación sobre cómo se logra esto.
Algo como eso ?
const nestedArray = { id : 100 , interval : 1000 , enable : true , topics: [ { topic1: [ { id: 0, 'error-code' : 100 } , { id: 1, status : 200 } , { id: 2, mode : 300 } ] } , { topic2: [ { id: 0, count : 100 } , { id: 1, total : 200 } , { id: 2, operation : 300 } ] } ] } nestedArray.topics.forEach( topic => { let key0 = Object.keys( topic)[0] topic[key0].forEach(el => console.log( key0, '->', Object.keys(el). join(', '))) }) console.log( '\notherwise :') nestedArray.topics.forEach( topic => { let key0 = Object.keys( topic)[0] topic[key0].forEach(el => console.log( key0, '->', Object.entries(el).map(([k,v])=>`${k}: ${v} `).join(', '))) }) .as-console-wrapper {max-height: 100%!important;top:0 } .as-console-row::after { display:none !important; }