Heim > Web-Frontend > js-Tutorial > Wie gruppiere ich mit Lodash mehrere Schlüssel in einem Array von Objekten?

Wie gruppiere ich mit Lodash mehrere Schlüssel in einem Array von Objekten?

Patricia Arquette
Freigeben: 2024-12-03 03:53:09
Original
980 Leute haben es durchsucht

How to Group Multiple Keys in an Array of Objects Using Lodash?

Gruppieren Sie mehrere Schlüssel in einem Array von Objekten mit eindeutigen Namen

Die vorliegende Aufgabe besteht darin, ein Array von Objekten zu ändern, um ein einfacheres Rendern zu ermöglichen. Das Ziel besteht darin, Objekte nach bestimmten Schlüsseln zu gruppieren, unabhängig von ihren tatsächlichen Namen im ursprünglichen Array.

Betrachten Sie das folgende Eingabearray:

const items = [
  {
    tab: 'Results',
    section: '2017',
    title: 'Full year Results',
    description: 'Something here',
  },
  {
    tab: 'Results',
    section: '2017',
    title: 'Half year Results',
    description: 'Something here',
  },
  {
    tab: 'Reports',
    section: 'Marketing',
    title: 'First Report',
    description: 'Something here',
  }
];
Nach dem Login kopieren

Unsere Zielausgabe besteht darin, ein neues Array zu haben mit der folgenden Struktur:

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

Um dies zu erreichen, können wir eine Kombination aus Lodashs _.map und _.groupBy verwenden Funktionen:

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

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

Die Ergebnisvariable enthält nun das gewünschte gruppierte Array von Objekten:

console.log(result);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie gruppiere ich mit Lodash mehrere Schlüssel in einem Array von Objekten?. 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