@tidyjs/tidy
Version:
Tidy up your data with JavaScript, inspired by dplyr and the tidyverse
23 lines (18 loc) • 689 B
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var groupTraversal = require('./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.groupTraversal(grouped, outputGrouped, [], addSubgroup, addLeaves);
return outputGrouped;
}
exports.groupMap = groupMap;
//# sourceMappingURL=groupMap.js.map