Maison > interface Web > js tutoriel > Comment définir dynamiquement les propriétés dans les objets JavaScript imbriqués ?

Comment définir dynamiquement les propriétés dans les objets JavaScript imbriqués ?

Linda Hamilton
Libérer: 2024-10-31 08:16:29
original
369 Les gens l'ont consulté

How to Dynamically Set Properties in Nested JavaScript Objects?

Affectation dynamique des propriétés dans les objets imbriqués

La définition des propriétés des objets imbriqués peut être une tâche complexe du point de vue du programme, en particulier lorsque le chemin et la valeur de la propriété peuvent varier en profondeur et en type. Pour simplifier ce processus, nous pouvons créer une fonction qui parcourt et définit dynamiquement les propriétés au sein d'un objet.

Implémentation de la fonction

<code class="javascript">function set(path, value) {
    var schema = obj; // Moving reference to internal objects within obj
    var pList = path.split('.');
    var len = pList.length;

    for (var i = 0; i < len - 1; i++) {
        var elem = pList[i];
        if (!schema[elem]) schema[elem] = {};
        schema = schema[elem];
    }

    schema[pList[len - 1]] = value;
}</code>
Copier après la connexion

Exemple d'utilisation

Considérez l'objet imbriqué suivant :

<code class="javascript">var obj = {
    db: {
        mongodb: {
            host: 'localhost'
        }
    }
};</code>
Copier après la connexion

Pour définir une propriété sur un chemin spécifique, nous pouvons utiliser la fonction set() :

<code class="javascript">set('db.mongodb.user', 'root');</code>
Copier après la connexion

Résultat

Application de la fonction set() à l'exemple d'objet produirait :

<code class="javascript">obj = {
    db: {
        mongodb: {
            host: 'localhost',
            user: 'root'
        }
    }
};</code>
Copier après la connexion

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal