Files
lcbp3.np-dms.work/frontend/node_modules/graphql/jsutils/groupBy.mjs
2025-09-21 20:29:15 +07:00

20 lines
375 B
JavaScript

/**
* Groups array items into a Map, given a function to produce grouping key.
*/
export function groupBy(list, keyFn) {
const result = new Map();
for (const item of list) {
const key = keyFn(item);
const group = result.get(key);
if (group === undefined) {
result.set(key, [item]);
} else {
group.push(item);
}
}
return result;
}