JavaScript code to get count of occurrence of objects in array of objects using array.reduce()

為{幸葍}努か 提交于 2019-12-24 03:05:25

问题


var developers = [
    { name: "Joe", age: 23 ,overallLevel: "high"},
    { name: "Sue", age: 28 ,overallLevel: "advanced" },
    { name: "Jon", age: 32 ,overallLevel: "high" },
    { name: "Bob", age: 24 ,overallLevel: "high" },
    { name: "Bob", age: 20 ,overallLevel: "advanced" }
]

Need count of overallLevel in the mentioned array using array.reduce() [high:3, advanced:2]


回答1:


You could just count them with an object.

var developers = [{ name: "Joe", age: 23, overallLevel: "high" }, { name: "Sue", age: 28, overallLevel: "advanced" }, { name: "Jon", age: 32, overallLevel: "high" }, { name: "Bob", age: 24, overallLevel: "high" }, { name: "Bob", age: 20, overallLevel: "advanced" }],
    overallLevel = developers.reduce(function (r, a) {
        r[a.overallLevel] = (r[a.overallLevel] || 0) + 1;
        return r;
    }, {});

console.log(overallLevel);



回答2:


Try this (you need no array.reduce() to do that):

var
  i,
  count = {high: 0, advanced: 0},
  developers = [
    { name: "Joe", age: 23 ,overallLevel: "high"},
    { name: "Sue", age: 28 ,overallLevel: "advanced" },
    { name: "Jon", age: 32 ,overallLevel: "high" },
    { name: "Bob", age: 24 ,overallLevel: "high" },
    { name: "Bob", age: 20 ,overallLevel: "advanced" }
  ];

for (i in developers) {

  count[developers[i].overallLevel]++;
}

alert(JSON.stringify(count)); //  Object { high=3,  advanced=2}


来源:https://stackoverflow.com/questions/37565828/javascript-code-to-get-count-of-occurrence-of-objects-in-array-of-objects-using

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!