Это так: каждый заказ может содержать много типов, с различными количествами. Я хочу, чтобы для каждой позиции заказа было общее количество для каждого типа.
[{
"order" : 1,
"orderDetails" : [{
"quantity" : 10,
"product" : {
"productType" : "A"
},
"quantity" : 20,
"product" : {
"productType" : "A"
},
"quantity" : 10,
"product" : {
"productType" : "B"
}
}]
}]
это мой код, он выполняет свою работу, но я пытаюсь сделать его немного более элегантным, так или иначе. Я уверен, что там есть избыточный код, я не уверен, что правильно использую Reduce
const orders = data.map(h => {
const newArray = [];
h.orderDetails_ = h.orderDetails.reduce(function(a, b, i) {
if (newArray[b.product.productType] == undefined) {
newArray[b.product.productType] = b.quantity;
return newArray;
} else {
newArray[b.product.productType] += b.quantity;
return newArray;
}
}, 0);
return h;
});