У меня есть следующий массив
var array = [
{id:"1",subject:"CE1",mark:"20"},{id:"1",subject:"CE2",mark:"30"},
{id:"2",subject:"CE1",mark:"40"},{id:"3",subject:"CE1",mark:"20"},
{id:"3",subject:"CE2",mark:"20"},{id:"1",subject:"CE1",mark:"40"},
{id:"1",subject:"CE2",mark:"30"},{id:"2",subject:"CE1",mark:"20"},
{id:"3",subject:"CE1",mark:"10"},{id:"3",subject:"CE2",mark:"10"}
]
, и я хочу следующий массив
var resultArray = [
{id:"1",subject:"CE1",mark:"60"},
{id:"1",subject:"CE2",mark:"60"},
{id:"2",subject:"CE1",mark:"40"},
{id:"3",subject:"CE1",mark:"30"},
{id:"3",subject:"CE2",mark:"30"}
]
У меня есть следующий код, который группирует массив только по идентификатору.
var totalArray = Object.values(array .reduce((a, {id, subject, mark}) => {
let totMark= mark;
if(a.hasOwnProperty(id)) {
a[id].mark+= totMark;
} else {
a[id] = {
id:id,
subject:subject,
mark:totMark,
}
}
return a;
}, {}));
Как я могу сгруппировать свой массив по двум свойствам, используя JavaScript?