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 = {};
Und einen Eigenschaftsnamen:
var propName = "foo.bar.foobar";
Um den Wert von obj.foo.bar.foobar festzulegen, würden Sie traditionell Folgendes verwenden Syntax:
obj.foo.bar.foobar = "hello world";
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; }
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");
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!