Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

155
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!