Comment puis-je additionner les valeurs dans des objets qui partagent une clé commune? J'ai besoin pour utiliser Lodash pour cela car j'ai besoin de bonnes performances si ces tableaux deviennent énormes.
var prjMgrValues = [
{"proj_mgr":"Jack ProjManager","submitted_dollars":12000},
{"proj_mgr":"Jack ProjManager","submitted_dollars":750000},
{"proj_mgr":"Joe ProjManager","submitted_dollars":45000}
]
Je cherche une sortie de
[
{"proj_mgr":"Jack ProjManager","submitted_dollars":762000},
{"proj_mgr":"Joe ProjManager","submitted_dollars":45000}
]
Il s'agit d'un cas de réduction pour chaque élément unique.
J'utilise toujours _.groupBy
puis _.map
le résultat d'un tableau après avoir appliqué la réduction. Dans ce cas, l'opération de réduction est _.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);
<script src="https://cdn.jsdelivr.net/lodash/4.14.1/lodash.min.js"></script>