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
Patricia ArquetteOriginal
2024-12-03 03:53:091001Durchsuche

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',
  }
];

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: [ { ... }, { ... } ],
      },
  },
...
]

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"));

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

console.log(result);

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!

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