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
Barbara StreisandOriginal
2024-11-26 13:03:10724Durchsuche

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

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

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;
  }
});

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
}

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

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!

Stellungnahme:
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