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

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

Linda Hamilton
Linda Hamiltonoriginal
2024-11-04 15:00:461063parcourir

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>

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>

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>

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

<code class="javascript">obj = {
    db: {
        mongodb: {
            host: 'localhost',
            user: 'root'
        }
    }
};</code>

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!

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