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

使用array.reduce()获取对象数组中对象出现次数的JavaScript代码,javascript,array-reduce,Javascript,Array Reduce,需要使用array.reduce()对所述数组中的总体级别进行计数 [高:3,高:2]你可以用一个物体数一数 var开发者=[{name:“Joe”,年龄:23岁,总体水平:“high”},{name:“Sue”,年龄:28岁,总体水平:“advanced”},{name:“Jon”,年龄:32岁,总体水平:“high”},{name:“Bob”,年龄:24岁,总体水平:“high”},{name:“Bob”,年龄:20岁,总体水平:“advanced”}, overallLevel=deve

需要使用array.reduce()对所述数组中的总体级别进行计数
[高:3,高:2]

你可以用一个物体数一数

var开发者=[{name:“Joe”,年龄:23岁,总体水平:“high”},{name:“Sue”,年龄:28岁,总体水平:“advanced”},{name:“Jon”,年龄:32岁,总体水平:“high”},{name:“Bob”,年龄:24岁,总体水平:“high”},{name:“Bob”,年龄:20岁,总体水平:“advanced”},
overallLevel=developers.reduce(函数(r,a){
r[a.总体水平]=(r[a.总体水平]| | 0)+1;
返回r;
}, {});
控制台日志(总体级别)
试试这个(你不需要
数组。reduce()
就可以做到这一点了):

var
我
计数={high:0,advanced:0},
开发者=[
{姓名:“乔”,年龄:23岁,总体水平:“高”},
{姓名:“苏”,年龄:28岁,总体水平:“高级”},
{姓名:“乔恩”,年龄:32岁,总体水平:“高”},
{姓名:“鲍勃”,年龄:24岁,总体水平:“高”},
{姓名:“鲍勃”,年龄:20岁,总体水平:“高级”}
];
for(开发人员中的i){
计数[developers[i].总体水平]++;
}

警报(JSON.stringify(count));//对象{high=3,advanced=2}
您已经尝试了什么?你面临什么问题?一般来说,
为我解决这个问题
问题处理得不太好。您可以使用filter()并只传递overallLevel的值进行筛选。您可以只计算过滤数组中的项目。可能重复的请查看您能告诉我们如何
(r[a.overallLevel]| | 0)+1将evaluate@SandeepNayak
r[a.overallLevel]| | 0
如果
r[a.overallLevel]
是一个快速值,则将赋值为零。然后它将向其中添加一个。
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" }
]