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!