@tidyjs/tidy
Version:
Tidy up your data with JavaScript, inspired by dplyr and the tidyverse
19 lines (16 loc) • 588 B
JavaScript
import { groupTraversal } from './groupTraversal.js';
function groupMap(grouped, groupFn, keyFn = (keys) => keys[keys.length - 1]) {
function addSubgroup(parentGrouped, keys) {
const subgroup = new Map();
parentGrouped.set(keyFn(keys), subgroup);
return subgroup;
}
function addLeaves(parentGrouped, keys, values) {
parentGrouped.set(keyFn(keys), groupFn(values, keys));
}
const outputGrouped = new Map();
groupTraversal(grouped, outputGrouped, [], addSubgroup, addLeaves);
return outputGrouped;
}
export { groupMap };
//# sourceMappingURL=groupMap.js.map