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

155
Visualizações
¿Cómo mapear `Object.values()` sobre una matriz de objetos que anidan objetos?

Estoy tratando de mapear Object.values() para extraer solo los valores de una matriz de objetos:

 const countries = [ { "austria": { value: 1}, "canada": {value: 2}, "nepal": { value: 3}, "india": { value: 4} }, { "australia": { value: 10}, "france": { value: 20}, "egypt": { value: 40}, "usa": { value: 20} }, { "mexico": { value: 3}, "germany": { value: 100}, "southAfrica": { value: 1}, "china": { value: 10} } ]

Llegar:

 // expected output [ { "austria": [ 1 ], "canada": [ 2 ], "nepal": [ 3 ], "india": [ 4 ] }, { "australia": [ 10 ] , "france": [ 20 ], "egypt": [ 40 ], "usa": [ 20 ] }, { "mexico": [ 3 ], "germany": [ 100 ], "southAfrica": [ 1 ], "china": [ 10 ] } ]

Lo intenté

 Object.values(countries) // returns the same as `countries`

y también intenté mapear usando ramda 's map() para mapear Object.values() sobre countries

 const R = require("ramda") R.map(Object.values, countries) // gives: // [ // [ { value: 1 }, { value: 2 }, { value: 3 }, { value: 4 } ], // [ { value: 10 }, { value: 20 }, { value: 40 }, { value: 20 } ], // [ { value: 3 }, { value: 100 }, { value: 1 }, { value: 10 } ] // ]

¡Pero no quiero perder los nombres de los países! ¿Cómo puedo utilizar el map de vainilla o la versión de ramda para obtener el resultado esperado?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Debe asignar las entradas y los valores de los objetos anidados.

 const countries = [{ austria: { value: 1 }, canada: { value: 2 }, nepal: { value: 3 }, india: { value: 4 } }, { australia: { value: 10 }, france: { value: 20 }, egypt: { value: 40 }, usa: { value: 20 } }, { mexico: { value: 3 }, germany: { value: 100 }, southAfrica: { value: 1 }, china: { value: 10 } }], result = countries.map(o => Object.fromEntries(Object .entries(o) .map(([k, v]) => [k, Object.values(v)])) ); console.log(result);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Relatório

0

Al usar Ramda, debe usar R.map dos veces:

  1. Para mapear sobre los elementos en la matriz.
  2. Para mapear sobre cada valor del objeto.

 const countries = [ { "austria": { value: 1}, "canada": {value: 2}, "nepal": { value: 3}, "india": { value: 4} }, { "australia": { value: 10}, "france": { value: 20}, "egypt": { value: 40}, "usa": { value: 20} }, { "mexico": { value: 3}, "germany": { value: 100}, "southAfrica": { value: 1}, "china": { value: 10} } ] const result = R.map(R.map(Object.values))(countries); console.log(result);
 .as-console-wrapper { max-height: 100% !important }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.28.0/ramda.min.js"></script>

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