Skip to content

Instantly share code, notes, and snippets.

@andrewthauer
Created January 6, 2019 18:53
Show Gist options
  • Save andrewthauer/ba18173a871bacb013fbd61da9d25d9e to your computer and use it in GitHub Desktop.
Save andrewthauer/ba18173a871bacb013fbd61da9d25d9e to your computer and use it in GitHub Desktop.
// lodash - reduceAll/Assign (using fp/over)
const fp = require("lodash@4.16.6/fp");
let data = [{valA: 1, valB: 2}, {valA: 2, valB: 3}];
const reduce1 = fp.sumBy('valA');
const reduce2 = fp.sumBy('valB');
const reducers = [reduce1, reduce2];
const reducedKeys = ['sumA', 'sumB'];
const zipObjectOver = data => fp.zipObject(reducedKeys, fp.over(reducers)(data));
const mapAssign = (val, data) => fp.map(i => fp.assign(i, val))(data);
const mapAssignOver = data => mapAssign(zipObjectOver(data), data);
let result = mapAssignOver(data);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment