This commit is contained in:
maropboia 2024-05-03 11:38:25 +06:00
parent e9b921a440
commit 8a920f47d5

View file

@ -1,12 +1,3 @@
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[]>
)
}
const arr = [{name: 'Alice', age: 30}, {name: 'Bob', age: 25}, {name: 'Charlie', age: 30}];
const groupedByAge = groupBy(arr, item => item.age);
// groupedByAge is now equal to {25: [{name: 'Bob', age: 25}], 30: [{name: 'Alice', age: 30}, {name: 'Charlie', age: 30}]}