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" }
]
Нужен подсчет общего уровня в указанном массиве с использованием array.reduce() [high:3, advanced:2]
2 ответа
Вы можете просто посчитать их с помощью объекта.
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);
Попробуйте это (вам не нужно array.reduce()
сделать это):
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}