Heim > Web-Frontend > js-Tutorial > Wie summiert man Werte doppelter Schlüssel in einem JavaScript-Array von Objekten effizient?

Wie summiert man Werte doppelter Schlüssel in einem JavaScript-Array von Objekten effizient?

Susan Sarandon
Freigeben: 2024-12-20 01:32:09
Original
1010 Leute haben es durchsucht

How to Efficiently Sum Values of Duplicate Keys in a JavaScript Array of Objects?

Summieren von Werten doppelter Schlüssel in einem Array von Objekten

In JavaScript kann es beim Umgang mit einem Array von Objekten erforderlich sein um doppelte Schlüssel zusammenzuführen und ihre zugehörigen Werte zu summieren. Bei einer Reihe von Objekten wie:

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
]
Nach dem Login kopieren

Man würde darauf abzielen, Folgendes zu erreichen:

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}
]
Nach dem Login kopieren

Anstatt Werte zu iterieren und zu pushen, nutzt ein effizienterer Ansatz Map and Reduce:

let counts = objArr.reduce((prev, curr) => {
  let count = prev.get(curr.key) || 0;
  prev.set(curr.key, curr.val + count);
  return prev;
}, new Map());
Nach dem Login kopieren

Dadurch wird eine Karte mit Schlüsseln als Objektschlüsseln und Werten als summierten Werten erstellt. Abschließend wird die Karte wie folgt wieder in ein Array konvertiert:

let reducedObjArr = [...counts].map(([_, value]) => {
  return {key, value}
})
Nach dem Login kopieren

Dieser Ansatz ist prägnanter und eliminiert das Risiko von Fehlern, die mit der manuellen Iteration verbunden sind.

Das obige ist der detaillierte Inhalt vonWie summiert man Werte doppelter Schlüssel in einem JavaScript-Array von Objekten effizient?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage