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))
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 } }
Das Ausführen des bereitgestellten Codes für dieses Objekt führt zum abgeflachten Ergebnis:
{ a: 2, c: 3 }
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!