const groupBy = (arr, key) => { |
return arr.reduce((prev, curr) => { |
(prev[curr[key]] = prev[curr[key]] || []).push(curr); |
return prev; |
}, {}); |
} |
const arr = [ |
{ id: 1, name: "Alice" , age: 20 }, |
{ id: 2, name: "Bob" , age: 18 }, |
{ id: 3, name: "Charlie" , age: 20 } |
]; |
const result = groupBy(arr, "age" ); |
console.log(result); |
/* |
{ |
"18": [{ id: 2, name: "Bob", age: 18 }], |
"20": [ |
{ id: 1, name: "Alice", age: 20 }, |
{ id: 3, name: "Charlie", age: 20 } |
] |
} |
*/ |