Gruppieren eines Arrays von Objekten nach Schlüssel mit Javascript und Lodash
Das Gruppieren von Objekten in einem Array basierend auf einem bestimmten Schlüssel ist eine häufige Operation. Während Lodash eine robuste Bibliothek für die Bewältigung solcher Aufgaben bereitstellt, ist es auch möglich, dies mit einfachem Javascript zu erreichen.
Betrachten Sie die folgende Reihe von Autoobjekten:
const cars = [ { 'make': 'audi', 'model': 'r8', 'year': '2012' }, { 'make': 'audi', 'model': 'rs5', 'year': '2013' }, { 'make': 'ford', 'model': 'mustang', 'year': '2012' }, { 'make': 'ford', 'model': 'fusion', 'year': '2015' }, { 'make': 'kia', 'model': 'optima', 'year': '2012' }, ];
Das Ziel besteht darin, ein zu erstellen neues Array von Objekten, gruppiert nach ihrer „make“-Eigenschaft. Mit einfachem Javascript kann die folgende Lösung angewendet werden:
var result = cars.reduce(function (r, a) { r[a.make] = r[a.make] || []; r[a.make].push(a); return r; }, Object.create(null));
Dieser Code nutzt Array#reduce, um das Array „cars“ zu durchlaufen. Es prüft für jedes Objekt, ob ein Eintrag für dessen „make“ im „result“-Objekt vorhanden ist. Wenn nicht, erstellt es ein neues Array für „make“ und schiebt das aktuelle Objekt hinein. Wenn bereits ein Eintrag vorhanden ist, wird das Objekt einfach in das Array verschoben.
Lodash bietet für diese Aufgabe auch eine Verknüpfung an:
const groupedCars = _.groupBy(cars, 'make');
Die Methode _.groupBy akzeptiert ein Array und eine Eigenschaft Name und gibt ein neues Objekt zurück, bei dem die Schlüssel die Werte der angegebenen Eigenschaft sind und die Werte Arrays der nach dieser Eigenschaft gruppierten Objekte sind.
Das obige ist der detaillierte Inhalt vonWie gruppiere ich ein Array von Objekten nach Schlüssel in JavaScript mit Lodash oder einfachem JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!