Heim > Web-Frontend > js-Tutorial > Wie legt man verschachtelte JavaScript-Objekteigenschaften mithilfe von Zeichenfolgennamen dynamisch fest?

Wie legt man verschachtelte JavaScript-Objekteigenschaften mithilfe von Zeichenfolgennamen dynamisch fest?

DDD
Freigeben: 2024-12-05 03:00:11
Original
852 Leute haben es durchsucht

How to Dynamically Set Nested JavaScript Object Properties Using String Names?

Objekteigenschaften dynamisch mithilfe von Zeichenfolgennamen in JavaScript festlegen

Bei einem Objekt mit einer komplexen verschachtelten Struktur kann es wünschenswert sein, eine bestimmte festzulegen Eigenschaft tief in der Objekthierarchie. Wenn der Eigenschaftsname jedoch nur als Zeichenfolge verfügbar ist, werden herkömmliche Zuweisungstechniken ineffizient.

Um dieser Herausforderung zu begegnen, demonstriert die Funktion „assign()“ einen rekursiven Ansatz zum Durchlaufen und Festlegen von Objekteigenschaften:

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;
}

var obj = {},
    propName = "foo.bar.foobar";

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

Mit dieser Funktion können Sie die Eigenschaft obj.foo.bar.foobar dynamisch auf einen gewünschten Wert setzen, auch wenn der Eigenschaftsname nur als verfügbar ist Zeichenfolge.

Das obige ist der detaillierte Inhalt vonWie legt man verschachtelte JavaScript-Objekteigenschaften mithilfe von Zeichenfolgennamen dynamisch fest?. 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