Để làm điều này, hãy sử dụng khái niệm reduce(). Dưới đây là mã:
Ví dụ
const subjectDetails = [
{
subjectId: '101',
subjectName: 'JavaScript'
},
{
subjectId: '102',
subjectName: 'Java'
},
{
subjectId: '103',
subjectName: 'JavaScript'
}
];
console.log([...subjectDetails.reduce((obj1, obj2) => {
if (obj1.has(obj2.subjectName)) {
obj1.get(obj2.subjectName).frequency++;
} else {
obj1.set(obj2.subjectName, { subjectName: obj2.subjectName, frequency: 1 });
}
return obj1;
}, new Map()).values()]);
Để chạy chương trình trên, bạn cần sử dụng lệnh sau:
node fileName.js
Tên tệp của tôi là demo144.js.
Kết quả
Chương trình sẽ cho ra kết quả sau:
PS C:\Users\Amit\JavaScript-code> node demo144.js
[ { subjectName: 'JavaScript', frequency: 2 }, { subjectName: 'Java', frequency: 1 } ]