Heim >Web-Frontend >js-Tutorial >Wie kann ich mit Lodash ein Array von Objekten effizient nach verschachtelten Schlüsseln gruppieren?
Gruppieren eines Arrays von Objekten durch Verschachteln von Schlüsseln mit bestimmten Namen
Diese Abfrage versucht, ein Array von Objekten zu ändern, indem sie nach bestimmten Namen gruppiert werden Schlüsselnamen, die eine gewünschte Ausgabe mit verschachtelten Objekten liefern.
Um dies zu erreichen, wird eine benutzerdefinierte Funktion namens groupAndMap verwendet. Es verwendet eine Kombination aus _.map und _.groupBy aus der Lodash-Bibliothek. Hier ist eine Aufschlüsselung der Funktionsweise:
function groupAndMap(items, itemKey, childKey, predic){ return _.map(_.groupBy(items,itemKey), (obj,key) => ({ [itemKey]: key, [childKey]: (predic && predic(obj)) || obj })); }
Um die gewünschte verschachtelte Ausgabe zu erstellen, wird die Funktion im Codeausschnitt zweimal verwendet:
var result = groupAndMap(items,"tab","sections", arr => groupAndMap(arr,"section", "items"));
Der erste Aufruf gruppiert die Objekte nach der „Tab“-Taste, wodurch ein Array von Objekten mit den Eigenschaften „Tab“ und „Abschnitte“ entsteht. Der zweite Aufruf gruppiert dann die Objekte innerhalb jedes Abschnitts nach der Taste „Abschnitt“ und liefert die gewünschte verschachtelte Ausgabe, bei der Objekte nach „Tab“ und dann nach „Abschnitt“ gruppiert werden.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Lodash ein Array von Objekten effizient nach verschachtelten Schlüsseln gruppieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!