Heim > Web-Frontend > js-Tutorial > Wie verschachtelt man ein Array von Objekten basierend auf Schlüsselwerten für ein optimiertes Rendering?

Wie verschachtelt man ein Array von Objekten basierend auf Schlüsselwerten für ein optimiertes Rendering?

DDD
Freigeben: 2024-12-04 11:29:10
Original
1001 Leute haben es durchsucht

How to Nest an Array of Objects Based on Key Values for Optimized Rendering?

Array von Objekten mit Verschachtelungsschlüsseln gruppieren

Problem:

Bei einem Array von Objekten besteht die Aufgabe darin, es neu zu organisieren Sie können sie in ein für das Rendern optimiertes Format umwandeln, indem Sie verschachtelte Strukturen basierend auf einem bestimmten Schlüssel erstellen Werte.

Beispiel:

Eingabearray:

[
  {
    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

Gewünschte Ausgabe:

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

Lösung :

Diese Transformation kann mithilfe einer Kombination von Lodash-Funktionen erreicht werden _.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

Um die Daten wie gewünscht zu verschachteln, wenden Sie „groupAndMap“ rekursiv an.

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

Diese Lösung erreicht das Ziel, das Array von Objekten zu gruppieren und zu verschachteln basierend auf bestimmten Schlüsselwerten.

Das obige ist der detaillierte Inhalt vonWie verschachtelt man ein Array von Objekten basierend auf Schlüsselwerten für ein optimiertes Rendering?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage