Objekteigenschaftswerte mit gemeinsamen Schlüsseln in JavaScript summieren
Betrachten Sie das folgende JavaScript-Array von Objekten:
const objArr = [ {key: "Mon Sep 23 2013 00:00:00 GMT-0400", val: 42}, {key: "Mon Sep 24 2013 00:00:00 GMT-0400", val: 78}, {key: "Mon Sep 25 2013 00:00:00 GMT-0400", val: 23}, {key: "Mon Sep 23 2013 00:00:00 GMT-0400", val: 54}, // Duplicate key ];
Das Ziel besteht darin, doppelte Schlüssel zusammenzuführen, indem ihre entsprechenden Val-Werte summiert werden, was zu einem Array wie folgt führt Dies:
const reducedObjArr = [ {key: "Mon Sep 23 2013 00:00:00 GMT-0400", val: 96}, {key: "Mon Sep 24 2013 00:00:00 GMT-0400", val: 78}, {key: "Mon Sep 25 2013 00:00:00 GMT-0400", val: 23}, ];
Um dies zu erreichen, kann eine robuste Lösung verwendet werden, die die Reduce- und Map-Methoden verwendet:
let counts = objArr.reduce((prev, curr) => { let count = prev.get(curr.key) || 0; prev.set(curr.key, curr.val + count); return prev; }, new Map()); let reducedObjArr = [...counts].map(([key, value]) => { return {key, value}; });
Dieser Ansatz erstellt zunächst eine Map mithilfe von Reduce, in der jeder Schlüssel repräsentiert Ein eindeutiger Schlüssel aus dem ursprünglichen Array und der entsprechende Wert ist die Summe aller Val-Werte mit demselben Schlüssel.
Schließlich wird die Map-Methode für die Counts-Map aufgerufen, um sie zu konvertieren zurück in ein Array von Objekten mit den gewünschten zusammengeführten Werten. Die Ausgabe dieses Codes ist reduziertObjArr, das die zusammengeführten und summierten Werte nach Bedarf enthält.
Das obige ist der detaillierte Inhalt vonWie summiere ich Objekteigenschaftswerte mit gemeinsam genutzten Schlüsseln in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!