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

138
Visualizações
Javascript reduce la matriz de objetos en un objeto con claves

Hola, estoy tratando de volver a empaquetar una matriz de objetos y convertirla en un objeto con claves específicas. Así que aquí está la matriz:

 const entryPenaltyGroups = [ { entryId: 16, intervalId: 8, penaltyTime: 16000 }, { entryId: 16, intervalId: 10, penaltyTime: 6000 } ]

El resultado esperado debe ser:

 { '8': { penaltyTime: 16000 }, '10': { penaltyTime: 6000 } }

Probé algo con map() , pero no obtuve los resultados esperados.

 for (const entry of entryPenaltyGroups) { entry.map(x => [{ [x.intervalId]: { penaltyTime: x.intervalId }, }]) }

¿Debería usar reduce () en su lugar, tal vez?

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

0

Puede mapear la matriz en pares [key, value] y luego usar Object.fromEntries para convertir la matriz mapeada en un solo objeto:

 Object.fromEntries(entryPenaltyGroups.map( ({intervalId, penaltyTime}) => [intervalId, {penaltyTime}] ))

Alternativamente:

 Object.fromEntries(entryPenaltyGroups.map( entry => [entry.intervalId, {penaltyTime: entry.penaltyTime}] ))

Si hay claves duplicadas, se utilizará la última aparición en el objeto resultante.

about 4 years ago · Juan Pablo Isaza Relatório

0

Una solución con reduce . Esto anulará el elemento si tienen el mismo ID de intervalId , pero OP comentó que esto no es un problema para ellos

 const entryPenaltyGroups = [ { entryId: 16, intervalId: 8, penaltyTime: 16000 }, { entryId: 16, intervalId: 10, penaltyTime: 6000 } ] const result = entryPenaltyGroups.reduce( (acc,cur) => { acc[cur.intervalId] = {penaltyTime: cur.penaltyTime}; return acc; } ,{}) console.log(result)

about 4 years ago · Juan Pablo Isaza Relatório

0

 const entryPenaltyGroups = [ { entryId: 16, intervalId: 8, penaltyTime: 16000 }, { entryId: 16, intervalId: 10, penaltyTime: 6000 } ] const formatted = {} for(entry of entryPenaltyGroups){ formatted[entry.intervalId] = {penaltyTime: entry.penaltyTime} } console.log(formatted)

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