Maison > interface Web > js tutoriel > le corps du texte

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

Linda Hamilton
Libérer: 2024-11-04 15:00:46
original
1014 Les gens l'ont consulté

How Can You Dynamically Set Properties on Nested Objects in JavaScript?

Paramétrage dynamique des propriétés pour les objets imbriqués

Définir des propriétés de manière dynamique sur des objets complexes et imbriqués peut être un défi. Pour résoudre ce problème, considérez la fonction suivante :

<code class="javascript">function set(path, value) {
    var schema = obj;  // 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

Avec cette fonction, vous pouvez définir ou écraser des propriétés sur des objets profondément imbriqués à l'aide d'un chemin séparé par des points :

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

Lorsque le La fonction rencontre un objet inexistant le long du chemin, elle crée un objet vide à ce niveau. Cela garantit que la propriété peut être définie au niveau correct sans fusionner ni écraser les valeurs existantes.

Par exemple, étant donné l'objet :

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

Définir db.mongodb.user sur 'root ' entraînerait :

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

En définissant dynamiquement les propriétés, vous pouvez manipuler facilement des objets imbriqués complexes, même lorsque la structure de l'objet est inconnue ou varie. Cette technique offre un moyen puissant et flexible d'accéder et de modifier des données au sein de structures de données complexes.

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