Tengo una matriz de objetos de la siguiente manera:
let people = [ { name: "Emily", age: 15 }, { name: "Emma", age: 16 }, { name: "Stacy", age: 18 }, { name: "Emily", age: 15 }, { name: "Jennifer", age: 12 } ];
Necesito devolver el resultado que contiene la edad como clave y la frecuencia como su valor correspondiente de la siguiente manera:
{ 15 : 2, 16 : 1, 18 : 1, 12 : 1 }
Desearía poder implementar esto usando forEach() y reduce().
Usando Array#reduce
:
const people = [ { name: "Emily", age: 15 }, { name: "Emma", age: 16 }, { name: "Stacy", age: 18 }, { name: "Emily", age: 15 }, { name: "Jennifer", age: 12 } ]; const ageCount = people.reduce((map, { age }) => ({ ...map, [age]: (map[age] || 0) + 1 }), {}); console.log(ageCount);