(arr: T[], cb: (element: T) => string)
| 22 | } |
| 23 | |
| 24 | const groupBy = <T>(arr: T[], cb: (element: T) => string): { [key: string]: T[] } => { |
| 25 | return arr.reduce<{ [key: string]: T[] }>((acc, curr) => { |
| 26 | const key = cb(curr) |
| 27 | if (!acc[key]) { |
| 28 | acc[key] = [] |
| 29 | } |
| 30 | acc[key].push(curr) |
| 31 | return acc |
| 32 | }, {}) |
| 33 | } |