Heim  >  Artikel  >  Web-Frontend  >  Wie gruppiere und summiere ich ein Array von Objekten nach Eigenschaften mit jQuery?

Wie gruppiere und summiere ich ein Array von Objekten nach Eigenschaften mit jQuery?

Barbara Streisand
Barbara StreisandOriginal
2024-11-17 19:37:01722Durchsuche

How to Group and Sum an Array of Objects by Property Using jQuery?

So gruppieren und summieren Sie ein Array von Objekten nach Eigenschaften mit jQuery

jQuery bietet leistungsstarke Methoden zur Datenbearbeitung, einschließlich der Möglichkeit, Arrays von Objekten nach gemeinsamen Eigenschaften zu gruppieren und summieren Sie ihre zugehörigen Werte.

Lösung

So erreichen Sie diese Gruppierung und Summierung mit jQuery:

  1. Iterieren Sie mit der Methode .each() über das Array von Objekten .
  2. Überprüfen Sie für jedes Objekt, ob die Id-Eigenschaft bereits im Ergebnisarray vorhanden ist.
  3. Wenn sie vorhanden ist, erhöhen Sie den entsprechenden Mengenwert um den Mengenwert des Objekts.
  4. Andernfalls erstellen Sie ein neues Objekt im Ergebnisarray mit der Id-Eigenschaft und einem Mengenwert, der dem Mengenwert des Objekts entspricht.

Beispielcode

var array = [
  { Id: "001", qty: 1 },
  { Id: "002", qty: 2 },
  { Id: "001", qty: 2 },
  { Id: "003", qty: 4 }
];

var result = [];
$.each(array, function(index, object) {
  if (!$.inArray(object.Id, result)) {
    result.push({ Id: object.Id, qty: 0 });
  }
  $.grep(result, function(value) {
    if (value.Id === object.Id) {
      value.qty += object.qty;
    }
  });
});

console.log(result);

Ausgabe:

[
  { Id: "001", qty: 3 },
  { Id: "002", qty: 2 },
  { Id: "003", qty: 4 }
]

Das obige ist der detaillierte Inhalt vonWie gruppiere und summiere ich ein Array von Objekten nach Eigenschaften mit jQuery?. 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
Vorheriger Artikel:Math.ceil vs. Math.floorNächster Artikel:Math.ceil vs. Math.floor