Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 3x 6x 6x 4x 4x 4x 3x 3x 4x 2x | import {Dictionary, KeyProjection} from 'fnxt/fnxt-types';
export const groupBy = <E>(mapping: KeyProjection<E>) => (array: E[]): E[][] => {
const map: Dictionary<E[]> = {};
for (const element of array) {
const key = mapping(element);
let list = map[key];
if (!list) {
list = [];
map[key] = list;
}
list.push(element);
}
return Object.values(map);
};
|