в массиве объектов, и если они одинаковы, то оставить один Mid, а их AMPayment сложить.
Написал что-то такого:
[...new Map(amList.map((item) => [item['Mid'], item])).values()]
Но моё решение делает всё, кроме сложение AMPayment, что мне нужно добавить или сделать что-то по другому ?
В итоге должно получиться: [ {Mid: "1520", AMPayment: "600"} ]
а в бд можешь вынести эту агрегацию? если нет, то не знаю как эффективнее всего делать такие аггрегации, я бы просто в лоб бы сделал const newPaymentsTable = {}; for (const item in amList) { if (!newPaymentsTable[item.Mid]) newPaymentsTable[item.Mid = 0; newPaymentsTable[item.Mid] += +item.AMPayment; } const newList = Object.entries(newPaymentsTable).map(entry => ({ Mid: entry[0], AMPayment: entry[1] }))
можно заюзать нормальную Map вместо объекта еще)
О всевышний бог императивного стиля, спасибо!💜😘
Обсуждают сегодня