Heim > Web-Frontend > js-Tutorial > Wie kann ich verschachtelte JavaScript-Objekteigenschaften mithilfe von Zeichenfolgennamen festlegen?

Wie kann ich verschachtelte JavaScript-Objekteigenschaften mithilfe von Zeichenfolgennamen festlegen?

Patricia Arquette
Freigeben: 2024-12-24 11:02:14
Original
365 Leute haben es durchsucht

How Can I Set Nested JavaScript Object Properties Using String Names?

Festlegen verschachtelter Objekteigenschaften mithilfe von Zeichenfolgennamen in JavaScript

In JavaScript ist der Zugriff auf und die Änderung von Objekteigenschaften für die Verwaltung Ihrer Daten von entscheidender Bedeutung. Was aber, wenn Sie nur den Namen der Eigenschaft als Zeichenfolge und nicht als direkte Tastenfolge erhalten? Dies kann in Szenarien auftreten, in denen Eigenschaften dynamisch generiert oder als Benutzereingabe empfangen werden.

Betrachten Sie das folgende Objekt:

var obj = {};
Nach dem Login kopieren

Und einen Eigenschaftsnamen:

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

Um den Wert von obj.foo.bar.foobar festzulegen, würden Sie traditionell Folgendes verwenden Syntax:

obj.foo.bar.foobar = "hello world";
Nach dem Login kopieren

Dieser Ansatz erfordert jedoch das manuelle Durchlaufen jeder Eigenschaft in der Kette, was mühsam und fehleranfällig werden kann, insbesondere bei tief verschachtelten Eigenschaften.

Rekursive Eigenschaft Zuweisungsfunktion

Um dieser Herausforderung zu begegnen, kann eine rekursive Funktion namens „Assign“ implementiert werden, um die Zuweisung zu vereinfachen Prozess:

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 akzeptiert ein Objekt (obj), einen Eigenschaftsnamen (prop) als Zeichenfolge und einen Wert (value), der der Eigenschaft zugewiesen werden soll. Es durchläuft rekursiv die Objekthierarchie und setzt die entsprechende Eigenschaft auf den angegebenen Wert.

Verwendung

Um den Wert von obj.foo.bar.foobar mithilfe der Zuweisung festzulegen Funktion:

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

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

Dieser Code erstellt die erforderlichen verschachtelten Eigenschaften und legt den Wert von fest obj.foo.bar.foobar zu „Wert“.

Durch die Verwendung rekursiver Eigenschaftenzuweisungsfunktionen können Sie mithilfe von Zeichenfolgennamen dynamisch auf verschachtelte Objekteigenschaften in JavaScript zugreifen und diese ändern und so eine flexible und skalierbare Lösung für komplexe Datenstrukturen bereitstellen .

Das obige ist der detaillierte Inhalt vonWie kann ich verschachtelte JavaScript-Objekteigenschaften mithilfe von Zeichenfolgennamen festlegen?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage