Maison > interface Web > js tutoriel > Comment puis-je accéder aux propriétés d'objets JavaScript imbriqués à l'aide d'une chaîne de notation par points ?

Comment puis-je accéder aux propriétés d'objets JavaScript imbriqués à l'aide d'une chaîne de notation par points ?

Patricia Arquette
Libérer: 2024-11-28 22:04:11
original
807 Les gens l'ont consulté

How Can I Access Nested JavaScript Object Properties Using a Dot Notation String?

Accès aux propriétés d'objets imbriqués à l'aide de chaînes de notation par points en JavaScript

Lors de la manipulation d'objets, il est souvent nécessaire d'accéder à des propriétés profondément imbriquées. Bien que la notation par points et la notation par parenthèses puissent y parvenir, elles nécessitent de spécifier chaque niveau d'imbrication individuellement. Cela peut devenir fastidieux et sujet aux erreurs pour les objets complexes.

Une solution pratique consiste à utiliser une chaîne de notation par points pour accéder directement aux propriétés de l'objet enfant. Imaginez un objet avec la structure suivante :

const r = { a: 1, b: { b1: 11, b2: 99 } };
Copier après la connexion

Pour accéder à la valeur 99 en utilisant la notation par points, vous écrivez généralement :

r.b.b2;
Copier après la connexion

Cependant, que se passe-t-il si vous souhaitez accéder dynamiquement au propriété utilisant une chaîne variable, telle que :

const s = "b.b2";
Copier après la connexion

Dans ce scénario, une notation par points simple (par exemple, r.s) ou une notation par crochets (r[s]) ne fonctionnera pas.

Fonction personnalisée pour la récupération de propriété

Une approche consiste à créer une fonction personnalisée pour diviser la chaîne par le caractère point. et accédez de manière itérative aux propriétés :

function getDescendantProp(obj, desc) {
    const arr = desc.split(".");
    while (arr.length && (obj = obj[arr.shift()]));
    return obj;
}

console.log(getDescendantProp(r, "b.b2")); // 99
Copier après la connexion

Cette fonction simplifie l'accès aux propriétés imbriquées à l'aide d'une représentation sous forme de chaîne. Vous pouvez également l'étendre pour gérer l'accès à l'index du tableau en modifiant le caractère divisé en conséquence.

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