Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

173
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda