使用array.reduce()获取对象数组中对象出现次数的JavaScript代码

Sai*_*hav 2 javascript array-reduce

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" }
]
Run Code Online (Sandbox Code Playgroud)

使用array.reduce()需要在提到的数组中计算overallLevel [high:3,advanced:2]

Nin*_*olz 5

你可以用一个对象来计算它们.

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);
Run Code Online (Sandbox Code Playgroud)