MCPcopy Create free account
hub / github.com/cursorless-dev/cursorless / groupBy

Function groupBy

src/util/itertools.ts:8–26  ·  view source on GitHub ↗
(list: T[], func: (element: T) => U)

Source from the content-addressed store, hash-verified

6 * @returns Map from group keys to list of elements mapped to given key
7 */
8export function groupBy<T, U>(list: T[], func: (element: T) => U): Map<U, T[]> {
9 const map = new Map<U, T[]>();
10
11 list.forEach((element) => {
12 const key = func(element);
13 var group: T[];
14
15 if (map.has(key)) {
16 group = map.get(key)!;
17 } else {
18 group = [];
19 map.set(key, group);
20 }
21
22 group.push(element);
23 });
24
25 return map;
26}

Callers 2

runMethod · 0.90
runForEachEditorFunction · 0.90

Calls 3

funcFunction · 0.85
getMethod · 0.80
setMethod · 0.80

Tested by

no test coverage detected