Skip to content

Commit ea6fdba

Browse files
committed
Adds groupBy function
1 parent ccc29e3 commit ea6fdba

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/system/array.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
'use strict';
22

33
export namespace Arrays {
4+
export function groupBy<T>(array: T[], accessor: (item: T) => any): T[] {
5+
return array.reduce((previous, current) => {
6+
const value = accessor(current);
7+
previous[value] = previous[value] || [];
8+
previous[value].push(current);
9+
return previous;
10+
}, Object.create(null));
11+
}
12+
413
export function uniqueBy<T>(array: T[], accessor: (item: T) => any, predicate?: (item: T) => boolean): T[] {
514
const uniqueValues = Object.create(null);
615
return array.filter(_ => {

0 commit comments

Comments
 (0)