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

188
Visualizações
¿Cómo comprimir elementos duplicados y obtener sus valores de cantidad?

Necesito encontrar los elementos con la misma identificación en la matriz a continuación, agregar sus cantidades y escribirlas en una sola línea.

 let arr = [ { itemId: 123, name: '0', quantity: 2 }, { itemId: 1, name: '1', quantity: 2 }, { itemId: 13, name: '2', quantity: 2 }, { itemId: 13, name: '3', quantity: 2 }, { itemId: 13, name: '4', quantity: 24 }, { itemId: 13, name: '5', quantity: 2 }, { itemId: 1, name: '6', quantity: 4 }, { itemId: 1, name: '7', quantity: 2 },];

Quiero una salida como esta:

 [{ itemId: 123, name: '1', quantity: 2 }, { itemId: 1, name: '2', quantity: 6 }, { itemId: 13, name: '6', quantity: 30 }];

Y mi código:

 const getPureList = () => { for (let index = 0; index < arr.length; index++) { for (let a = index + 1; a < arr.length; a++) { if (arr[index].itemId === arr[a].itemId) { arr[index].quantity += arr[a].quantity; arr.splice(a, 1); } } } return arr; };

Gracias por tu ayuda.

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

0

Al mantener el name del primer objeto del grupo, puede tomar un objeto para agrupar y tomar los valores como resultado.

 const array = [{ itemId: 123, name: '0', quantity: 2 }, { itemId: 1, name: '1', quantity: 2 }, { itemId: 13, name: '2', quantity: 2 }, { itemId: 13, name: '3', quantity: 2 }, { itemId: 13, name: '4', quantity: 24 }, { itemId: 13, name: '5', quantity: 2 }, { itemId: 1, name: '6', quantity: 4 }, { itemId: 1, name: '7', quantity: 2 }], result = Object.values(array.reduce((r, o) => { r[o.itemId] ??= { ...o, quantity: 0 }; r[o.itemId].quantity += o.quantity; return r; }, {})); console.log(result);
 .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