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.