Heim >Web-Frontend >js-Tutorial >Wie gruppiere ich ein Array von Objekten nach Schlüssel in JavaScript mit Lodash oder einfachem JavaScript?

Wie gruppiere ich ein Array von Objekten nach Schlüssel in JavaScript mit Lodash oder einfachem JavaScript?

Linda Hamilton
Linda HamiltonOriginal
2024-12-19 19:15:11914Durchsuche

How to Group an Array of Objects by Key in JavaScript using Lodash or Plain JavaScript?

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!

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