Dynamische Eigenschaftszuweisung für verschachtelte Objekte
Im Bereich von JavaScript können Objekte komplizierte Strukturen mit unterschiedlichen Tiefen und Eigenschaften sein. Wir stoßen häufig auf Szenarien, in denen wir Eigenschaften innerhalb tief verschachtelter Objekte dynamisch zuweisen oder überschreiben müssen. Dies kann sich als Herausforderung erweisen, insbesondere wenn der Pfad und der Wert der Immobilie willkürlich sein können.
Die Herausforderung:
Gegeben ein Objekt mit einer willkürlichen Anzahl von Ebenen und Eigenschaften, wir Suchen Sie nach einer Funktion, die es uns ermöglicht, Eigenschaften mithilfe einer Zeichenfolgendarstellung des Eigenschaftspfads dynamisch festzulegen (oder zu überschreiben), wie unten gezeigt:
<code class="javascript">var obj = { db: { mongodb: { host: 'localhost', }, }, }; // Set a new property set('db.mongodb.user', 'root');</code>
Die Lösung:
Um dieser Herausforderung zu begegnen, führen wir eine Funktion namens set ein, die Eigenschaften innerhalb verschachtelter Objekte dynamisch ändert. Unten ist die Implementierung:
<code class="javascript">function set(path, value) { var schema = obj; // Moving reference to internal objects within 'obj' var pList = path.split('.'); // Split the property path into an array of elements var len = pList.length; for (var i = 0; i < len - 1; i++) { var elem = pList[i]; if (!schema[elem]) schema[elem] = {}; // If the element doesn't exist, create an empty object schema = schema[elem]; // Advance the schema reference to the next level } schema[pList[len - 1]] = value; // Update or create the property at the leaf level }</code>
Verwendung:
Um eine Eigenschaft festzulegen, übergeben Sie einfach den Eigenschaftspfad und den entsprechenden Wert an die Set-Funktion, wie im Beispiel gezeigt unten:
<code class="javascript">set('db.mongodb.user', 'root');</code>
Ausgabe:
Das resultierende Objekt nach dem dynamischen Festlegen der Eigenschaft:
<code class="javascript">{ db: { mongodb: { host: 'localhost', user: 'root', }, }, }</code>
Durch diese Funktion erhalten wir die Flexibilität, verschachtelte Eigenschaften dynamisch zu ändern, was eine effiziente und vielseitige Objektmanipulation ermöglicht.
Das obige ist der detaillierte Inhalt vonWie können Sie verschachtelten Objekten in JavaScript Eigenschaften dynamisch zuweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!