Heim  >  Artikel  >  Web-Frontend  >  Wie gruppiere und summiere ich ein Array von Objekten nach einem Schlüssel in JavaScript?

Wie gruppiere und summiere ich ein Array von Objekten nach einem Schlüssel in JavaScript?

Susan Sarandon
Susan SarandonOriginal
2024-11-23 03:33:22563Durchsuche

How to Group and Sum an Array of Objects by a Key in JavaScript?

Gruppieren und Summieren eines Arrays von Objekten nach einem Schlüssel

In JavaScript können Sie ein Array von Objekten nach einem bestimmten Schlüssel und einer bestimmten Summe gruppieren die diesem Schlüssel zugeordneten Werte mithilfe der leistungsstarken Tools von jQuery. So können Sie dies erreichen:

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

Schleife und Summierung

Eine effektive Methode besteht darin, das Array zu durchlaufen und die Werte mithilfe der Methode „reduce()“ zu akkumulieren . Diese Methode verwendet eine Rückruffunktion, die das Array auf einen einzelnen Wert reduziert, in diesem Fall ein Objekt, das die gruppierten Werte darstellt.

var result = [];
array.reduce(function (res, value) {
  if (!res[value.Id]) {
    res[value.Id] = { Id: value.Id, qty: 0 };
    result.push(res[value.Id]);
  }
  res[value.Id].qty += value.qty;
  return res;
}, {});

Ausgabe:

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

Diese Lösung gruppiert die Objekte effizient nach dem Id-Schlüssel und summiert die entsprechenden Mengenwerte, was zu einem Array von Objekten mit gruppierten und summierten Werten führt.

Das obige ist der detaillierte Inhalt vonWie gruppiere und summiere ich ein Array von Objekten nach einem Schlüssel in JavaScript?. 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