Heim >Web-Frontend >js-Tutorial >Wie legt man Eigenschaften in verschachtelten JavaScript-Objekten dynamisch fest?

Wie legt man Eigenschaften in verschachtelten JavaScript-Objekten dynamisch fest?

Linda Hamilton
Linda HamiltonOriginal
2024-10-31 08:16:29353Durchsuche

How to Dynamically Set Properties in Nested JavaScript Objects?

Dynamische Eigenschaftszuweisung in verschachtelten Objekten

Das Festlegen von Eigenschaften verschachtelter Objekte kann eine programmgesteuert komplexe Aufgabe sein, insbesondere wenn der Eigenschaftspfad und -wert in Tiefe und Typ variieren kann. Um diesen Prozess zu vereinfachen, können wir eine Funktion erstellen, die dynamisch Eigenschaften innerhalb eines Objekts durchläuft und festlegt.

Funktionsimplementierung

<code class="javascript">function set(path, value) {
    var schema = obj; // Moving reference to internal objects within obj
    var pList = path.split('.');
    var len = pList.length;

    for (var i = 0; i < len - 1; i++) {
        var elem = pList[i];
        if (!schema[elem]) schema[elem] = {};
        schema = schema[elem];
    }

    schema[pList[len - 1]] = value;
}</code>

Beispielverwendung

Betrachten Sie das folgende verschachtelte Objekt :

<code class="javascript">var obj = {
    db: {
        mongodb: {
            host: 'localhost'
        }
    }
};</code>

Um eine Eigenschaft auf einen bestimmten Pfad festzulegen, können wir die Funktion set() verwenden:

<code class="javascript">set('db.mongodb.user', 'root');</code>

Ergebnis

Anwenden der Funktion set() zum Beispielobjekt würde Folgendes ergeben:

<code class="javascript">obj = {
    db: {
        mongodb: {
            host: 'localhost',
            user: 'root'
        }
    }
};</code>

Das obige ist der detaillierte Inhalt vonWie legt man Eigenschaften in verschachtelten JavaScript-Objekten dynamisch fest?. 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