Hola a todos, tengo objeto de objeto y solo quiero combinar datos dentro del objeto interno en forma de matriz, ¿hay alguna forma de hacerlo?
datos de entrada
let data = { ok123b:{ name:'shanu' }, of123b:{ name:'rahul' }, og1453jdfk:{ name:'ak' }, ok1kjjdde23b:{ name:'man' } } let arrayOfData =[data.ok123b.name,data.of123b.name,data.og1453jdfk.name,data.ok1kjjdde23b.name] console.log(arrayOfData); //this is hard coded i want dynamic code to convert data in the form of arrayRendimiento esperado
output = ['shanu','rahul','ak','man'];Hay varias maneras de lograr esto. He actualizado mi respuesta para incluir estos.
Solución 1 (método For loop y push() )
Puede usar un bucle for simple y push (agregar) el nombre de cada objeto a la matriz.
let data = { ok123b:{name: 'shanu'}, of123b:{name: 'rahul'}, og1453jdfk:{name:'ak'}, ok1kjjdde23b:{name: 'man'} } let arrayOfData = []; for(item in data) { arrayOfData.push(data[item]['name']) } console.log(arrayOfData); Solución 2 (usando Object.values() y map() )
let data = { ok123b:{name: 'shanu'}, of123b:{name: 'rahul'}, og1453jdfk:{name:'ak'}, ok1kjjdde23b:{name: 'man'} } let r = Object.values(data); let result = r.map((element) => element.name) console.log(result); Solución 3 (un trazador de líneas usando el Object.entries() y map() )
let data = { ok123b:{name: 'shanu'}, of123b:{name: 'rahul'}, og1453jdfk:{name:'ak'}, ok1kjjdde23b:{name: 'man'} } let result = Object.entries(data).map(a=>a[1].name) console.log(result);Sin embargo, como mencionó @Chris G, esta es una pregunta muy común, por lo que probablemente debería buscar preguntas similares como:
hola a todos si alguien tiene el mismo problema aqui esta la solucion
let data = { ok123b:{ name:'shanu' }, of123b:{ name:'rahul' }, og1453jdfk:{ name:'ak' }, ok1kjjdde23b:{ name:'man' } } let r=Object.values(data); let result =r.map((el) =>el.name) console.log(result);