Heim > Web-Frontend > js-Tutorial > Wie glätte ich verschachtelte Objekte mit einer einzigen Zeile JS-Code?

Wie glätte ich verschachtelte Objekte mit einer einzigen Zeile JS-Code?

Susan Sarandon
Freigeben: 2024-10-22 13:17:03
Original
235 Leute haben es durchsucht

How to Flatten Nested Objects with a Single Line of JS Code?

Verschachtelte Objekte mit einem Einzeiler reduzieren

Das Reduzieren verschachtelter Objekte ist eine häufige Aufgabe in der Programmierung und mit modernem JavaScript sogar noch einfacher . Hier ist eine einzeilige Lösung, die den Spread-Operator und Object.assign verwendet:

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

So funktioniert es:

Dieser Code verwendet eine rekursive Funktion, _flatten, Dies durchläuft das verschachtelte Objekt und erstellt ein Array von Objekten mit einer Eigenschaft. Jeder Eigenschaftsname wird seinem entsprechenden Wert zugeordnet, und wenn der Wert ein anderes Objekt ist, rekursiert die Funktion in dieses Objekt.

Der Spread-Operator (...) wird verwendet, um das von _flatten erstellte Array von Objekten zu reduzieren . Das resultierende Array wird dann an Object.assign übergeben, das alle Objekte zu einem einzigen, abgeflachten Objekt zusammenfasst.

Beispieleingabe und -ausgabe:

Betrachten Sie Folgendes verschachtelt Objekt:

{
  a: 2,
  b: {
    c: 3
  }
}
Nach dem Login kopieren

Das Ausführen des bereitgestellten Codes für dieses Objekt führt zum abgeflachten Ergebnis:

{
  a: 2,
  c: 3
}
Nach dem Login kopieren

Hinweis:

Diese Lösung verwendet ES6-Funktionen, daher müssen Sie sie möglicherweise anpassen, wenn Sie eine ältere JavaScript-Umgebung verwenden.

Das obige ist der detaillierte Inhalt vonWie glätte ich verschachtelte Objekte mit einer einzigen Zeile JS-Code?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage