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 } };
Pour accéder à la valeur de b2, vous pouvez généralement utiliser :
r.b.b2 r['b']['b2']
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
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
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!