Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

170
Vistas
Cómo obtener solo pares de valores clave en objetos anidados en javascript
let Ar=[ { info:{ name:"Sai", age:24 }, grade:'A' }, { name:"Satish", grade:'B', info:{ place:"Hyd", company:'Company1' }, info2:{ place2:"Hyderabad", company2:'Company2' } }

]

**La salida debe ser solo pares de valores clave **

 [ { "name": "Sai", "age": 24, "grade": "A" }, { "name": "Satish", "grade": "B", "place": "Hyd", "company": "Company1", "place2": "Hyderabad", "company2": "Company2" } ] How we can get only key value pairs form the object and nested object

* La solución actual que tengo es esta. Pero, ¿tenemos un código más optimizado para obtener los únicos pares de valores clave de un objeto? He usado los métodos Object.keys(obj) y Object.entries(obj) para lograr *

 let fr=Ar.map((A)=>{ let test=[]; let en= Object.keys(A).map((item) => { if (typeof A[item] === "object") { Object.entries(A[item]).map((i)=>{test.push(i)}) } else { return test.push([item, A[item]]); } }); return test; }) let finalAnswer=fr.map((item)=>{ return Object.fromEntries(item) }) console.log("Spread Print",finalAnswer)

¿Hay alguna solución mejor que yo?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puedes usar esto

 let fr=Ar.map((A)=>{ let test={}; Object.keys(A).forEach((item) => { if (typeof A[item] === "object") { test={...test,...A[item]}; } else { test[item]=A[item] }

} return test });

about 4 years ago · Juan Pablo Isaza Denunciar

0

La siguiente puede ser una posible solución (usando la recursividad) para lograr el objetivo deseado.

Tenga en cuenta que si hay claves duplicadas en niveles anidados, solo se conservará el último/último par clave-valor.

Fragmento de código

 // recursive method to transform nested objects const recTxf = parm => { if (Array.isArray(parm)) { // if key-value pair array const [k, v] = parm; // either recurse to nested, or return key-value pair if (typeof v === 'object') return recTxf(v); else return { [k]: v }; } else return { // otherwise, it is object ...Object.entries(parm) // iterate over key-value pairs .reduce( (acc, itm) => ({ // use "reduce" to accumulate/aggregate ...acc, ...recTxf(itm) // aggregate results of the recursive calls }), {} ) }; }; // method to iterate over the array const myTransform = arr => arr.map(ob => recTxf(ob)); let Ar = [ { info: { name: "Sai", age: 24 }, grade: 'A' }, { name: "Satish", grade: 'B', info: { place: "Hyd", company: 'Company1' }, info2: { place2: "Hyderabad", company2: 'Company2' } } ]; console.log(myTransform(Ar));
 .as-console-wrapper { max-height: 100% !important; top: 0 }

Explicación

Los comentarios en línea se proporcionan en el fragmento anterior.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda