Maison > interface Web > js tutoriel > Comment puis-je définir les propriétés des objets JavaScript imbriqués à l'aide de noms de chaînes ?

Comment puis-je définir les propriétés des objets JavaScript imbriqués à l'aide de noms de chaînes ?

Patricia Arquette
Libérer: 2024-12-24 11:02:14
original
365 Les gens l'ont consulté

How Can I Set Nested JavaScript Object Properties Using String Names?

Définition des propriétés des objets imbriqués à l'aide de noms de chaînes en JavaScript

En JavaScript, l'accès et la modification des propriétés des objets sont essentiels à la gestion de vos données. Cependant, que se passe-t-il si le nom de la propriété vous est uniquement fourni sous forme de chaîne au lieu de sa séquence de touches directe ? Cela peut survenir dans des scénarios où les propriétés sont générées dynamiquement ou reçues en tant qu'entrée utilisateur.

Considérez l'objet suivant :

var obj = {};
Copier après la connexion

Et un nom de propriété :

var propName = "foo.bar.foobar";
Copier après la connexion

Pour définir la valeur de obj.foo.bar.foobar, vous utiliseriez traditionnellement ce qui suit syntaxe :

obj.foo.bar.foobar = "hello world";
Copier après la connexion

Cependant, cette approche nécessite de parcourir manuellement chaque propriété de la chaîne, ce qui peut devenir fastidieux et sujet aux erreurs, en particulier pour les propriétés profondément imbriquées.

Propriété récursive Fonction d'affectation

Pour relever ce défi, une fonction récursive appelée assign peut être implémentée pour simplifier l'affectation process :

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 prend un objet (obj), un nom de propriété (prop) sous forme de chaîne et une valeur (value) à attribuer à la propriété. Il parcourt récursivement la hiérarchie des objets et définit la propriété appropriée sur la valeur spécifiée.

Utilisation

Pour définir la valeur de obj.foo.bar.foobar à l'aide de l'affectation function :

var obj = {},
    propName = "foo.bar.foobar";

assign(obj, propName, "Value");
Copier après la connexion

Ce code créera les propriétés imbriquées nécessaires et définira la valeur de obj.foo.bar.foobar sur "Valeur".

En utilisant des fonctions d'attribution de propriétés récursives, vous pouvez accéder et modifier dynamiquement les propriétés des objets imbriqués en JavaScript à l'aide de noms de chaînes, offrant ainsi une solution flexible et évolutive pour les 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