Así que estaba revisando los documentos de MDN sobre el método .reduce en JavaScript y me costaba entender qué estaba pasando con el acumulador (acc). Esperaba que el acumulador se llenara/agrupara según la edad a medida que recorría objectArray (abajo). Adjunté una imagen de la salida de la consola y puede ver que la cuenta ya está poblada/agrupada. Cualquier ayuda sería muy apreciada.
MDN .reduce: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
let people = [ { name: 'Alice', age: 21 }, { name: 'Max', age: 20 }, { name: 'Jane', age: 20 } ]; function groupBy(objectArray, property) { return objectArray.reduce(function (acc, obj) { console.log('acc',acc) //line not in MDN docs let key = obj[property] if (!acc[key]) { acc[key] = [] } acc[key].push(obj) return acc }, {}) } let groupedPeople = groupBy(people, 'age') // groupedPeople is: // { // 20: [ // { name: 'Max', age: 20 }, // { name: 'Jane', age: 20 } // ], // 21: [{ name: 'Alice', age: 21 }] // }Salida de la consola: captura de pantalla