En JavaScript, des scénarios surviennent dans lesquels vous devrez peut-être définir une propriété profondément imbriquée d'un objet en utilisant uniquement sa représentation sous forme de chaîne. Par exemple :
var obj = {}; var propName = "foo.bar.foobar";
Pour définir la propriété obj.foo.bar.foobar sur "hello world", vous pouvez utiliser la fonction suivante :
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 parcourt le structure de propriétés imbriquée, créant tous les objets manquants en cours de route. Il attribue la valeur finale à la propriété souhaitée à la fin.
Utilisation :
assign(obj, propName, "hello world");
Après avoir exécuté cette mission, obj.foo.bar.foobar sera défini sur "hello world" .
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!