„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie summieren Sie die Werte von doppelten Schlüssel in einem JavaScript -Array von Objekten?

Wie summieren Sie die Werte von doppelten Schlüssel in einem JavaScript -Array von Objekten?

Gepostet am 2025-02-06
Durchsuche:155

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

kombinieren gleichschließende Eigenschaftenwerte in einem Array von Objekten

gegebenen Doppelte Schlüssel, indem Sie ihre entsprechenden Werte summieren?

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
]

Unser Ziel ist es, ein Array mit einzigartigen Schlüsseln und zusammenfassten Werten wie folgt zu erhalten:

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}
]

Lösung unter Verwendung von Karte und Reduzierung

anstatt zu iterieren und Werte zu pushen = [ {Schlüssel: 'Mon 23. September 2013 00:00:00 GMT-0400', VAL: 42}, {Key: 'Mon Sep 24. September 2013 00:00:00 GMT-0400', VAL: 78}, {Key: 'Mon Sep 25. September 2013 00:00:00 GMT-0400', VAL: 23}, {Schlüssel: 'Mon 23. September 2013 00:00:00 GMT-0400', VAL: 54} // & lt;- Duplicate Key ]; // Daten in eine Karte mit Reduzierung konvertieren const zählt = objarr.Reduce ((prev, curr) = & gt; { const count = prev.get (Curr.Key) || 0; PREV.SET (Curr.Key, Curr.val Count); return prev; }, new map ()); // Die Karte zählt das Objekt zurück in ein Array const recordObjarr = [... zählt] .Map (([Schlüssel, Wert]) = & gt; {{{ Rückgabe {Schlüssel, Wert} }); console.log (rectedObjarr);

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
];

// Convert data into a Map with reduce
const counts = objArr.reduce((prev, curr) => {
  const count = prev.get(curr.key) || 0;
  prev.set(curr.key, curr.val   count);
  return prev;
}, new Map());

// Map counts object back to an array
const reducedObjArr = [...counts].map(([key, value]) => {
  return {key, value}
});

console.log(reducedObjArr); 
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3