Giả sử sau đây là mảng của chúng tôi -
var details = [ { studentName: "John", studentAge: 23 }, { studentName: "David", studentAge: 24 }, { studentName: "John", studentAge: 21 }, { studentName: "John", studentAge: 25 }, { studentName: "Bob", studentAge: 22 }, { studentName: "David", studentAge: 20 } ]
Chúng ta cần đếm số lần xuất hiện của các tên lặp lại, tức là đầu ra phải là
John: 3 David: 2 Bob: 1
Đối với điều này, bạn có thể sử dụng khái niệm Reduce ().
Ví dụ
Sau đây là mã -
var details = [ { studentName: "John", studentAge: 23 }, { studentName: "David", studentAge: 24 }, { studentName: "John", studentAge: 21 }, { studentName: "John", studentAge: 25 }, { studentName: "Bob", studentAge: 22 }, { studentName: "David", studentAge: 20 } ] var output = Object.values(details.reduce((obj, { studentName }) => { if (obj[studentName] === undefined) obj[studentName] = { studentName: studentName, occurrences: 1 }; else obj[studentName].occurrences++; return obj; }, {})); console.log(output);
Để chạy chương trình trên, bạn cần sử dụng lệnh sau -
node fileName.js.
Ở đây, tên tệp của tôi là demo282.js. Điều này sẽ tạo ra kết quả sau trên bảng điều khiển -
PS C:\Users\Amit\javascript-code> node demo282.js [ { studentName: 'John', occurrences: 3 }, { studentName: 'David', occurrences: 2 }, { studentName: 'Bob', occurrences: 1 } ]