Dùng Object.values() và reduce() gộp object trùng studentId, cộng dồn marks.
Mã thực hiện
var details = [
{ studentId: 10, marks: 75, studentName: "John" },
{ studentId: 10, marks: 75, studentName: "John" },
{ studentId: 11, marks: 98, studentName: "Bob" }
];
var output = Object.values(details.reduce((acc, obj) => {
if (acc[obj.studentId]) {
['marks'].forEach(k => acc[obj.studentId][k] += obj[k]);
} else acc[obj.studentId] = { ...obj };
return acc;
}, {}));
console.log(output);
Kết quả
[ { studentId: 10, marks: 150, studentName: 'John' }, { studentId: 11, marks: 98, studentName: 'Bob' } ]