Maison >interface Web >js tutoriel >Comment attribuer des valeurs à des objets JavaScript profondément imbriqués à l'aide de noms de propriétés de chaîne ?

Comment attribuer des valeurs à des objets JavaScript profondément imbriqués à l'aide de noms de propriétés de chaîne ?

DDD
DDDoriginal
2024-12-15 20:04:17795parcourir

How to Assign Values to Deeply Nested JavaScript Objects Using String Property Names?

Affectation dynamique de propriétés en JavaScript à l'aide de noms de chaînes

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn