How can I sum the values in objects which share a common key? I need to use Lodash for this because I need good performance if these arrays get huge.
var prjMgrValues = [ {"proj_mgr":"Jack ProjManager","submitted_dollars":12000}, {"proj_mgr":"Jack ProjManager","submitted_dollars":750000}, {"proj_mgr":"Joe ProjManager","submitted_dollars":45000} ]
I'm looking for an output of
[ {"proj_mgr":"Jack ProjManager","submitted_dollars":762000}, {"proj_mgr":"Joe ProjManager","submitted_dollars":45000} ]
This is a case of reduction for each unique element.
I always use _.groupBy and then _.map the result to an array after applying the reduction. In this case the reduction operation is _.sumBy.
var prjMgrValues = [ {"proj_mgr":"Jack ProjManager","submitted_dollars":12000}, {"proj_mgr":"Jack ProjManager","submitted_dollars":750000}, {"proj_mgr":"Joe ProjManager","submitted_dollars":45000} ]; var output = _(prjMgrValues) .groupBy('proj_mgr') .map((objs, key) => ({ 'proj_mgr': key, 'submitted_dollars': _.sumBy(objs, 'submitted_dollars') })) .value(); console.log(output);