„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie flache ich verschachtelte Objekte in JavaScript mit einer Codezeile ab?

Wie flache ich verschachtelte Objekte in JavaScript mit einer Codezeile ab?

Gepostet am 2025-03-04
Durchsuche:175

How Do I Flatten Nested Objects in JavaScript with One Line of Code?

flachende verschachtelte Objekte mit einem One-Liner

In JavaScript entsteht die Aufgabe, verschachtelte Objekte zu verflachten. Diese Operation beinhaltet die Umwandlung eines komplexen Objekts mit verschachtelten Ebenen in ein einstufiges Objekt. Während es verschiedene Ansätze gibt, um dies zu erreichen, werden wir uns mit einer Einzeilenlösung befassen, die moderne JavaScript-Funktionen nutzt. Es kombiniert ein Array von One-Property-Objekten, die durch eine rekursive Funktion (_flatten) erstellt wurden. Diese Funktion durchquert jeden Schlüssel im Eingabefiel und ruft sich entweder auf, wenn der Wert ein anderes Objekt ist oder ein Objekt mit einem einzelnen Eigenschaftspaar ansonsten erstellt. 'Objekt'? A: 2, B: { C: 3 } }

, die dieses Objekt ausflättert:

{ A: 2, C: 3 }

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

concISIness:

erreicht Objekte, die sich in einer einzelnen Zeile von Code verflachten. Undercore.
Object.assign({}, ...function _flatten(o) { return [].concat(...Object.keys(o).map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]})))}(yourObject))

Flexibilität:

verwendet eine rekursive Funktion (_flatten), um nistete Strukturen dynamisch umzugehen. Wie Object.Sign und der Spread Operator.
Object.assign({}, ...function _flatten(o) { return [].concat(...Object.keys(o).map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]})))}(yourObject))

Zero-Ireation: Die rekursive Funktion untersucht alle Pfade im verschachtelten Objekt gleichzeitig, was die Leistung für große Objekte beeinflussen kann.

Freigabeerklärung Dieser Artikel wird reproduziert unter: 1729573278 Wenn ein Verstoß vorliegt, wenden Sie sich bitte an [email protected], um ihn zu löschen.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3