Heim  >  Artikel  >  Web-Frontend  >  Wie glätte ich verschachtelte Objekte mit einer einzeiligen Lösung?

Wie glätte ich verschachtelte Objekte mit einer einzeiligen Lösung?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-22 16:22:02588Durchsuche

How to Flatten Nested Objects with a One-Line Solution?

Einzelne Lösung zum Glätten verschachtelter Objekte

Im Bereich der Datenmanipulation ist das Glätten verschachtelter Objekte eine häufige Aufgabe. Möglicherweise müssen Sie ein komplexes Objekt mit mehreren Verschachtelungsebenen in ein einfacheres Objekt mit einer einzigen Ebene von Schlüsseln und Werten umwandeln. Ein effizienter Ansatz besteht darin, einen prägnanten Einzeiler zu verwenden:

Object.assign({}, ...function _flatten(o) { return [].concat(...Object.keys(o).map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]})))}(yourObject))

Lassen Sie uns diesen Einzeiler aufschlüsseln:

  • Die Voraussetzung besteht darin, das Objekt rekursiv zu durchlaufen und ein Array zu erstellen von verschachtelten Objekten mit einer Eigenschaft.
  • Die Object.assign-Methode wird dann verwendet, um diese Objekte zu einem einzigen abgeflachten Objekt zu kombinieren.
  • Die Funktion _flatten ist ein rekursiver Helfer, der in verschachtelte Objekte absteigt. Erstellen von Objekten mit einer Eigenschaft basierend auf Schlüssel-Wert-Paaren.
  • Dieser Vorgang wird fortgesetzt, bis alle verschachtelten Objekte reduziert wurden.

Um diesen Einzeiler zu verwenden, übergeben Sie einfach Ihr verschachteltes Objekt in den yourObject-Platzhalter. Auf das resultierende abgeflachte Objekt kann als Ausgabe des Ausdrucks zugegriffen werden.

Das obige ist der detaillierte Inhalt vonWie glätte ich verschachtelte Objekte mit einer einzeiligen Lösung?. 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