Maison > Article > interface Web > Comment accéder aux propriétés d'un objet JavaScript imbriqué à l'aide d'une chaîne ?
Accès aux propriétés enfants des objets avec une chaîne de notation par points
L'accès aux propriétés enfants des objets JavaScript à l'aide de la notation par points en chaîne est une tâche de programmation courante. Cependant, il existe des limites lors de l'utilisation de cette approche pour l'accès dynamique aux propriétés.
Considérez l'objet suivant :
var r = { a: 1, b: { b1: 11, b2: 99 } };
Pour accéder à la valeur de b2, on peut utiliser la notation par points standard :
r.b.b2
Cependant, si l'on nécessite un accès dynamique aux propriétés basé sur une chaîne, tel que :
var s = "b.b2";
Les tentatives directes comme r.s ou r[s] échouerait. Une solution consiste à utiliser une fonction personnalisée qui parcourt les segments de chaîne pour récupérer la propriété :
function getDescendantProp(obj, desc) { var arr = desc.split("."); while (arr.length && (obj = obj[arr.shift()])); return obj; } console.log(getDescendantProp(r, "b.b2")); // 99 ```` This function effectively simulates the behavior of dot notation by breaking down the string and recursively accessing the corresponding properties. However, it is important to note that this method works best for simple object property scenarios. Arrays can also be accessed using this approach by treating elements as dotted properties:
getDescendantProp({ a: [ 1, 2, 3 ] }, 'a.2'); // 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!