Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Giảm và gộp tập hợp object - JavaScript

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' } ]