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
Libérer: 2024-12-15 20:04:17
original
863 Les gens l'ont consulté

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";
Copier après la connexion

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;
}
Copier après la connexion

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");
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal