data = {
const accumulate = (tbl, key, storedCat, cat, val) => {
const pair = tbl.get(key);
if (cat === storedCat) {
return tbl.set(key, pair ? [pair[0] + val, val] : [val, val]);
} else {
return tbl.set(key, pair ? [pair[0] + val, pair[1]] : [val, 0]);
}
};
return result.reduce(
(tbl, row) => accumulate(tbl, row.code, 0, row.category, row.value),
new Map()
);
}