Maison >interface Web >js tutoriel >Comment puis-je définir les propriétés des objets JavaScript imbriqués à l'aide de noms de chaînes ?
Définition des propriétés des objets imbriqués à l'aide de noms de chaînes en JavaScript
En JavaScript, l'accès et la modification des propriétés des objets sont essentiels à la gestion de vos données. Cependant, que se passe-t-il si le nom de la propriété vous est uniquement fourni sous forme de chaîne au lieu de sa séquence de touches directe ? Cela peut survenir dans des scénarios où les propriétés sont générées dynamiquement ou reçues en tant qu'entrée utilisateur.
Considérez l'objet suivant :
var obj = {};
Et un nom de propriété :
var propName = "foo.bar.foobar";
Pour définir la valeur de obj.foo.bar.foobar, vous utiliseriez traditionnellement ce qui suit syntaxe :
obj.foo.bar.foobar = "hello world";
Cependant, cette approche nécessite de parcourir manuellement chaque propriété de la chaîne, ce qui peut devenir fastidieux et sujet aux erreurs, en particulier pour les propriétés profondément imbriquées.
Propriété récursive Fonction d'affectation
Pour relever ce défi, une fonction récursive appelée assign peut être implémentée pour simplifier l'affectation process :
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; }
Cette fonction prend un objet (obj), un nom de propriété (prop) sous forme de chaîne et une valeur (value) à attribuer à la propriété. Il parcourt récursivement la hiérarchie des objets et définit la propriété appropriée sur la valeur spécifiée.
Utilisation
Pour définir la valeur de obj.foo.bar.foobar à l'aide de l'affectation function :
var obj = {}, propName = "foo.bar.foobar"; assign(obj, propName, "Value");
Ce code créera les propriétés imbriquées nécessaires et définira la valeur de obj.foo.bar.foobar sur "Valeur".
En utilisant des fonctions d'attribution de propriétés récursives, vous pouvez accéder et modifier dynamiquement les propriétés des objets imbriqués en JavaScript à l'aide de noms de chaînes, offrant ainsi une solution flexible et évolutive pour les structures de données complexes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!