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

125
Visualizações
Convierta una matriz de objetos en un solo objeto

Tengo la siguiente matriz, por ejemplo:

 [ { name: "abc", value: "1" }, { name: "xyz", value: "2" }, { name: "abc", value: "3" }, { name: "abc", value: "4" }, { name: "xyz", value: "5" }, ]

Ahora, quiero reducir esta matriz a un solo objeto agrupando el value con el mismo name en una matriz. Algo como esto -

 { abc: [1, 3, 4], xyz: [2, 5] }

¿Cómo hago esto usando reduce en JavaScript?

No estoy seguro de si este es el enfoque correcto, pero he intentado algo como esto y no me da el resultado deseado.

 const data = arr.reduce((acc, item) => { return { ...acc, [item.name]: [item.value, acc[item.value]] }; });
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Estaba en el camino correcto con su respuesta, pero necesita verificar si acc ya tiene una clave de item.name :

 const data = [{ name: "abc", value: "1" }, { name: "xyz", value: "2" }, { name: "abc", value: "3" }, { name: "abc", value: "4" }, { name: "xyz", value: "5" }, ] const result = data.reduce((acc, { name, value }) => ({ ...acc, [name] : [...(acc[name] || []), value] }), {}) console.log(result)

Tenga en cuenta que puede usar la desestructuración de objetos para simplificar el código de acumulación.

about 4 years ago · Juan Pablo Isaza Relatório

0

 const data=[ { name: "abc", value: "1" }, { name: "xyz", value: "2" }, { name: "abc", value: "3" }, { name: "abc", value: "4" }, { name: "xyz", value: "5" }, ]; const res=data.reduce((a,c)=>{ (a[c.name]??=[]).push(c.value); return a; },{}); console.log(res);

about 4 years ago · Juan Pablo Isaza Relatório

0

 const data = [{ name: "abc", value: "1" }, { name: "xyz", value: "2" }, { name: "abc", value: "3" }, { name: "abc", value: "4" }, { name: "xyz", value: "5" }, ]; let finalObject = {}; data.forEach((item) => { if (!finalObject.hasOwnProperty(item.name)) { finalObject[item.name] = [item.value]; } else { finalObject[item.name].push(item.value); } }); console.log(finalObject);

Simplemente analice los valores si necesita una cadena a un número y le dará una respuesta

 { abc: [1, 3, 4], xyz: [2, 5] }
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