Affectation dynamique de propriétés en JavaScript
Dans certains scénarios, vous pouvez rencontrer le besoin d'attribuer une valeur à une propriété profondément imbriquée dans un objet structure. Cependant, vous ne pouvez utiliser le nom de la propriété que sous forme de chaîne. Cela peut poser un défi, car accéder directement à la propriété nécessiterait de parcourir toute la hiérarchie des objets.
Solution
Pour résoudre ce problème, nous pouvons utiliser assign() fonction :
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; }
Utilisation
Considérons un exemple :
var obj = {}; var propName = "foo.bar.foobar"; assign(obj, propName, "Value");
Explication
En utilisant la fonction assign(), vous pouvez attribuer dynamiquement des valeurs aux propriétés à n'importe quel niveau de profondeur, même si vous n'avez que le nom de la propriété sous forme de chaîne.
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!