Esta es una pregunta en mi última entrevista y estoy tratando de resolverla: en este caso, quiero capturar valores en el objeto anidado e iniciar sesión en la consola.
const obj1 = { foo: 1, bar: { foo1: 2, bar1: { foo2: { foo3: 3, bar2: 4 }, bar3: 5 } } }; // output: [1,2,3,4,5] //en realidad, quiero decir de una manera profesional. no de esta manera:
[obj1.foo, obj1.bar.foo1, obj1.bar.bar1.foo2.foo3, obj1.bar.bar1.foo2.bar2, obj1.bar.bar1.bar3]puedes hacer algo como esto
const obj1 = { foo: 1, bar: { foo1: 2, bar1: { foo2: { foo3: 3, bar2: 4 }, bar3: 5 } } }; const getValues = (data, values= []) => { if(typeof data !== 'object'){ return [...values, data] } return Object.values(data).flatMap(v => getValues(v, values)) } console.log(getValues(obj1))Puede obtener una propiedad específica como esta:
> function nestedObject (nested) { > for (const key in nested) { > if (typeof nested[key] === 'object') { > for (const nesty in nested[key]) { > console.log(nested[key][nesty]); > } > } else { > console.log(nested[key]); > } > } } > nestedObject(obj1);