10 lines
245 B
TypeScript
10 lines
245 B
TypeScript
export function groupBy<T, K extends keyof any>(arr: T[], key: (i: T) => K): Record<K, T[]> {
|
|
return arr.reduce(
|
|
(groups, item) => {
|
|
(groups[key(item)] ||= []).push(item);
|
|
return groups;
|
|
},
|
|
{} as Record<K, T[]>,
|
|
);
|
|
}
|