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 } };
Pour accéder à la valeur 99 en utilisant la notation par points, vous écrivez généralement :
r.b.b2;
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";
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
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!