Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ค้นหาจำนวนครั้งที่ค่าของคุณสมบัติวัตถุเกิดขึ้นในอาร์เรย์ด้วย JavaScript?


สำหรับสิ่งนี้ ให้ใช้แนวคิดของ reduce() ต่อไปนี้เป็นรหัส -

ตัวอย่าง

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()]);

ในการรันโปรแกรมข้างต้น คุณต้องใช้คำสั่งต่อไปนี้ -

node fileName.js.

ที่นี่ ชื่อไฟล์ของฉันคือ demo144.js

ผลลัพธ์

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

PS C:\Users\Amit\JavaScript-code> node demo144.js
[
   { subjectName: 'JavaScript', frequency: 2 },
   { subjectName: 'Java', frequency: 1 }
]