在陣列中使用 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 }
]

更新時間: 11-9-2020

81 次瀏覽

開啟您的 職業生涯

完成課程獲得認證

開始
廣告