Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

148
Vistas
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 la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda