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

136
Visualizações
¿Alguien puede sugerir una forma de agrupar una matriz de objetos por una clave de objeto y luego crear una nueva matriz de objetos basada en la agrupación en JavaScript?

Por ejemplo, tengo una matriz como esta. Aquí hay objetos de matriz para la misma fecha y diferentes valores.

 [ { "date": "2020-12-31T18:30:00.000Z", "value": 450 }, { "date": "2020-12-31T18:30:00.000Z", "value2": 362 }, { "date": "2020-12-31T18:30:00.000Z", "value3": 699 }, { "date": "2021-03-01T18:30:00.000Z", "value": 269 }, { "date": "2021-03-01T18:30:00.000Z", "value2": 450 }, { "date": "2021-03-02T18:30:00.000Z", "value3": 841 }, { "date": "2021-04-03T18:30:00.000Z", "value": 700 }, ]

Quiero hacer una matriz agrupada y fusionada para la fecha como se muestra a continuación. Los diferentes valores con la misma "fecha" se fusionan en un objeto de matriz.

 [ { "date": "2020-12-31T18:30:00.000Z", "value": 450, "value2": 362, "value3": 699 }, { "date": "2021-03-01T18:30:00.000Z", "value": 269, "value2": 450 }, { "date": "2021-03-02T18:30:00.000Z", "value3": 841 }, { "date": "2021-04-03T18:30:00.000Z", "value": 700 } ]
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede lograr el resultado de manera eficiente usando Map y reducir

 const arr = [ { date: "2020-12-31T18:30:00.000Z", value: 450, }, { date: "2020-12-31T18:30:00.000Z", value2: 362, }, { date: "2020-12-31T18:30:00.000Z", value3: 699, }, { date: "2021-03-01T18:30:00.000Z", value: 269, }, { date: "2021-03-01T18:30:00.000Z", value2: 450, }, { date: "2021-03-02T18:30:00.000Z", value3: 841, }, { date: "2021-04-03T18:30:00.000Z", value: 700, }, ]; const dict = arr.reduce((acc, curr) => { const { date, ...rest } = curr; if (!acc.has(date)) { acc.set(date, curr); } else { const o = acc.get(curr.date); Object.entries(curr).forEach(([k, v]) => (o[k] = v)); } return acc; }, new Map()); const result = [...dict.values()]; console.log(result);
 /* This is not a part of answer. It is just to give the output full height. So IGNORE IT */ .as-console-wrapper { max-height: 100% !important; top: 0; }

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