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

152
Visualizações
Getting unique objects in array based on 2 object property values in Javascript

I have an array of objects with the structure of :

  const data = [
    {
       "Type": "SELL",
       "Item": "Screws",
       "Qty": "500",
       "Price": 10,
     },
     {
       "Type": "BUY",
       "Item": "Screws",
       "Qty": "1000",
       "Price": 5,
     },
     {
       "Type": "BUY",
       "Item": "Screws",
       "Qty": "1000",
       "Price": 10,
     },
      {
       "Type": "BUY",
       "Item": "Bolts",
       "Qty": "500",
       "Price": 15,
     },
    ]

How do I create an array based on unique values of Item and type both and Including sum of all Buys and sells in their separate objects.

For example, my output should be :

const data = [
    {
       "Type": "SELL",
       "Item": "Screws",
       "Qty": "500",
       "Price": 10,
     },
     {
       "Type": "BUY",
       "Item": "Screws",
       "Qty": "2000", //Sum of 1000 and 1000
       "Price": 7.5, //Average of 5 and 10
     },
      {
       "Type": "BUY",
       "Item": "Bolts",
       "Qty": "500",
       "Price": 15,
     },
    ]

I have tried several ways, among which I first get unique data based on Type:

//getting unique values based on name

let unique = []
for (let char of arr) { 
     let check = unique.find(e=> {
        if(char.Type== e.Type){ 
          e.Qty= parseInt(e.Qty) + parseInt(char.Qty) 
          return true
        } 
        return false;
     }) 
     if(!check) {
      unique.push(char)
     }
  } 

But It only modifies quantity, and doesn't create separate objects for Types sell and buy.
Thankyou in advance.

about 4 years ago · Juan Pablo Isaza
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