Heim > Web-Frontend > js-Tutorial > Wie weist man tief verschachtelten JavaScript-Objekten mithilfe von String-Eigenschaftsnamen Werte zu?

Wie weist man tief verschachtelten JavaScript-Objekten mithilfe von String-Eigenschaftsnamen Werte zu?

DDD
Freigeben: 2024-12-15 20:04:17
Original
789 Leute haben es durchsucht

How to Assign Values to Deeply Nested JavaScript Objects Using String Property Names?

Dynamische Eigenschaftszuweisung in JavaScript mithilfe von Zeichenfolgennamen

In JavaScript treten Szenarien auf, in denen Sie möglicherweise eine tief verschachtelte Eigenschaft eines Objekts festlegen müssen, indem Sie nur seine Zeichenfolgendarstellung verwenden. Zum Beispiel:

var obj = {};
var propName = "foo.bar.foobar";
Nach dem Login kopieren

Um die Eigenschaft obj.foo.bar.foobar auf „hello world“ zu setzen, können Sie die folgende Funktion verwenden:

function assign(obj, prop, value) {
    if (typeof prop === "string")
        prop = prop.split(".");

    if (prop.length > 1) {
        var e = prop.shift();
        assign(obj[e] =
                 Object.prototype.toString.call(obj[e]) === "[object Object]"
                 ? obj[e]
                 : {},
               prop,
               value);
    } else
        obj[prop[0]] = value;
}
Nach dem Login kopieren

Diese Funktion iteriert durch die verschachtelte Eigenschaftsstruktur und erstellt dabei alle fehlenden Objekte. Am Ende weist es der gewünschten Eigenschaft den endgültigen Wert zu.

Verwendung:

assign(obj, propName, "hello world");
Nach dem Login kopieren

Nach Ausführung dieser Zuweisung wird obj.foo.bar.foobar auf „hello world“ gesetzt. .

Das obige ist der detaillierte Inhalt vonWie weist man tief verschachtelten JavaScript-Objekten mithilfe von String-Eigenschaftsnamen Werte zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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