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

147
Views
Obtener objetos únicos en una matriz en función de los valores de propiedad de 2 objetos en Javascript

Tengo una matriz de objetos con la estructura de:

 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, }, ]

¿Cómo creo una matriz basada en valores únicos de Artículo y escribo tanto como Incluida la suma de todas las compras y ventas en sus objetos separados?

Por ejemplo, mi salida debería ser:

 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, }, ]

He intentado varias formas, entre las cuales primero obtengo datos únicos basados en Tipo:

//obteniendo valores únicos basados en el nombre

 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) } }

Pero solo modifica la cantidad y no crea objetos separados para los tipos de venta y compra.
Gracias de antemano.

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!