У меня есть массив, содержащий 4 поля, и я должен сгруппировать по двум свойствам и агрегировать (суммировать) одно поле из сгруппированного массива.
попытался сгруппировать по более чем одному не работает.
в приведенном ниже коде я пытался манипулировать массивом с ожидаемым списком, но не уверен, как достичь ожидаемого результата ниже, используя RxJs
from(this.dummyData)
.pipe(
groupBy(
function (e) {
return { category: e.category, manDate: e.manDate }; //is this valid at all?
},
function (e) { return e; }),
mergeMap(group => zip(of(group.key), group.pipe(toArray())))
)
.subscribe( function(result) {
console.log(result);
});
Существующий массив:
[{
category : "Printer",
manDate : "02/01/2019",
amount : 90
},
{
category : "Printer",
manDate : "02/01/2019",
amount : 100
},
{
category : "Printer",
manDate : "02/03/2019",
amount : 90
},
{
category : "Printer",
manDate : "02/04/2019",
amount : 90
},
{
category : "Scanner",
manDate : "08/21/2019",
amount : 8
},
{
category : "Scanner",
manDate : "08/21/2019",
amount : 25
},
{
category : "Scanner",
manDate : "08/21/2019",
amount : 20
},
{
category : "Scanner",
manDate : "08/21/2019",
amount : 10
}
];
ожидается:
[{
category : "Printer",
subCategory : "A",
manDate : "02/01/2019",
amount : 190
},{
category : "Printer",
subCategory : "A",
manDate : "02/03/2019",
amount : 90
},{
category : "Printer",
subCategory : "A",
manDate : "02/04/2019",
amount : 90
},{
category : "Scanner",
subCategory : "A",
manDate : "08/21/2019",
amount : 63
}]
Мне нужна чья-то помощь для достижения этого результата.