Maison > interface Web > js tutoriel > Comment accéder aux propriétés des objets imbriqués à l'aide de chaînes de notation par points en JavaScript ?

Comment accéder aux propriétés des objets imbriqués à l'aide de chaînes de notation par points en JavaScript ?

Susan Sarandon
Libérer: 2024-11-30 02:19:12
original
484 Les gens l'ont consulté

How to Access Nested Object Properties Using Dot Notation Strings in JavaScript?

Accès aux propriétés enfants de l'objet via une chaîne de notation par points

Lorsqu'il s'agit d'objets imbriqués, l'accès à des propriétés profondément enfouies peut être fastidieux. Déterminer la manière idéale d'y parvenir à l'aide d'une notation par points a intrigué de nombreux développeurs.

Considérons un objet défini comme suit :

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

Pour accéder à la valeur de b2, vous pouvez généralement utiliser :

r.b.b2
r['b']['b2']
Copier après la connexion

Cependant, définir une chaîne comme var s = "b.b2" et tenter d'accéder à r[s] ou r.s échouera.

Solution :

Une méthode consiste à créer une fonction personnalisée qui divise la chaîne en points et récupère de manière itérative la propriété souhaitée. Un exemple simple est :

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

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

Cette fonction descend de manière récursive la hiérarchie des objets en fonction du chemin séparé par des points, renvoyant la valeur finale. Notamment, il peut également gérer l'accès aux indices de tableau en utilisant la notation par points :

console.log(getDescendantProp({ a: [1, 2, 3] }, 'a.2')); // Outputs 3
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