Heim > Web-Frontend > js-Tutorial > Wie summiere ich Werte identischer Schlüssel in einem Array von JavaScript-Objekten?

Wie summiere ich Werte identischer Schlüssel in einem Array von JavaScript-Objekten?

Barbara Streisand
Freigeben: 2024-11-26 13:03:10
Original
750 Leute haben es durchsucht

How to Sum Values of Identical Keys in an Array of JavaScript Objects?

Summieren von Werten ähnlicher Schlüssel in einem Array von Objekten

Problem:

Bestimmen Sie bei einem gegebenen Array von Objekten a Methode zur Berechnung der Summe (oder anderer mathematischer Operationen) von Werten, die Objekten zugeordnet sind, die dieselben Werte haben Schlüssel.

Beispiel:

Betrachten Sie das folgende Array von Objekten:

[
    {
        'name': 'P1',
        'value': 150
    },
    {
        'name': 'P1',
        'value': 150
    },
    {
        'name': 'P2',
        'value': 200
    },
    {
        'name': 'P3',
        'value': 450
    }
]
Nach dem Login kopieren

Die gewünschte Ausgabe würde die Eigenschaft „Wert“ für Objekte summieren mit passenden „Name“-Eigenschaften, resultierend in:

[
    {
        'name': 'P1',
        'value': 300
    },
    {
        'name': 'P2',
        'value': 200
    },
    {
        'name': 'P3',
        'value': 450
    }
]
Nach dem Login kopieren

Lösung:

Die Lösung besteht darin, das Eingabearray zu durchlaufen und identische Schlüsselwerte in einem separaten Objekt zusammenzufassen.

var obj = [
    { 'name': 'P1', 'value': 150 },
    { 'name': 'P1', 'value': 150 },
    { 'name': 'P2', 'value': 200 },
    { 'name': 'P3', 'value': 450 }
];

var holder = {};

obj.forEach(function(d) {
  if (holder.hasOwnProperty(d.name)) {
    holder[d.name] = holder[d.name] + d.value;
  } else {
    holder[d.name] = d.value;
  }
});
Nach dem Login kopieren

Das resultierende Halterobjekt enthält Schlüssel-Wert-Paare, wobei die Schlüssel eindeutige Namenswerte sind und die Werte die Summe der zugehörigen Werte darstellen Eigenschaften.

{
  'P1': 300,
  'P2': 200,
  'P3': 450
}
Nach dem Login kopieren

Um die gewünschte Ausgabe zu generieren, durchlaufen Sie die Eigenschaften des Halterobjekts und erstellen Sie neue Objekte:

var obj2 = [];

for (var prop in holder) {
  obj2.push({ name: prop, value: holder[prop] });
}
Nach dem Login kopieren

Das in obj2 gespeicherte Endergebnis erfüllt die Anforderungen der Summierung von Werten für Objekte mit ähnlichen Schlüsseln.

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

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage