Heim > Web-Frontend > js-Tutorial > Wie kann ich mit Lodash verschachtelte Objekte effizient nach benutzerdefinierten Schlüsseln gruppieren?

Wie kann ich mit Lodash verschachtelte Objekte effizient nach benutzerdefinierten Schlüsseln gruppieren?

Patricia Arquette
Freigeben: 2024-12-08 07:12:12
Original
996 Leute haben es durchsucht

How Can I Efficiently Group Nested Objects by Custom Keys Using Lodash?

Gruppieren verschachtelter Objekte nach benutzerdefinierten Schlüsseln

Um das Rendern zu erleichtern, muss ein Array von Objekten umgewandelt werden, um Objekte mit bestimmten Schlüsselnamen zu gruppieren. Das Ziel besteht darin, eine Ausgabe zu erstellen, in der die Objekte nach diesen festgelegten Schlüsseln gruppiert sind, wie unten dargestellt:

const output = [
  {
    tab: 'Results',
    sections: [
      {
         section: '2017',
         items: [ { 'item that belongs here' }, { ... } ],
      },
  },
  {
    tab: 'Reports',
    sections: [
      {
         section: 'Marketing',
         items: [ { ... }, { ... } ],
      },
  },
...
]
Nach dem Login kopieren

Implementierungsansatz

Diese Transformation kann erreicht werden durch Kombinieren der Lodash-Funktionen _.map und _.groupBy.

function groupAndMap(items, itemKey, childKey, predic){
    return _.map(_.groupBy(items,itemKey), (obj,key) => ({
        [itemKey]: key,
        [childKey]: (predic && predic(obj)) || obj
    }));
}
Nach dem Login kopieren

Die Funktion „groupAndMap“ benötigt vier Parameter:

  • items: Das Array der zu gruppierenden Objekte.
  • itemKey: Der Schlüssel zum Gruppieren der Elemente.
  • childKey: Der zu verwendende Schlüssel die verschachtelten Gruppen.
  • predic: Ein optionales Prädikat, das auf die verschachtelten Gruppen angewendet werden soll Gruppen.

Die Funktion gruppiert zunächst die Elemente nach dem itemKey mithilfe von _.groupBy. Anschließend werden die gruppierten Objekte durchlaufen und ein neues Objekt mit itemKey und childKey erstellt. Wenn der Parameter „predic“ angegeben wird, wendet er das Prädikat auf die verschachtelten Gruppen an.

Beispielverwendung

Um diese Funktion zum Gruppieren der angegebenen Objekte zu verwenden, rufen Sie sie wie folgt auf :

var result = groupAndMap(items,"tab","sections", 
                   arr => groupAndMap(arr,"section", "items"));
Nach dem Login kopieren

Dadurch werden die Elemente nach den Tasten „Tab“ und „Abschnitt“ gruppiert, was zur gewünschten Ausgabe führt.

Das obige ist der detaillierte Inhalt vonWie kann ich mit Lodash verschachtelte Objekte effizient nach benutzerdefinierten Schlüsseln gruppieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage