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