Maison >interface Web >js tutoriel >Comment accéder efficacement aux propriétés d'objets JavaScript imbriqués à l'aide de chaînes de notation par points ?
En JavaScript, il existe plusieurs façons d'accéder aux propriétés d'un objet. Cependant, accéder aux propriétés imbriquées avec un chemin de chaîne peut être un défi.
Étant donné un objet tel que :
var r = { a:1, b: { b1:11, b2: 99}};
Considérez un scénario dans lequel vous souhaitez accéder à la valeur 99 en spécifiant une chaîne de chemin var s = "b.b2". Bien que les méthodes traditionnelles comme r.b.b2 ou r['b']['b2'] fonctionnent, vous préférerez peut-être utiliser une notation plus concise.
function getDescendantProp(obj, desc) { var arr = desc.split("."); while(arr.length && (obj = obj[arr.shift()])); return obj; }
Cette fonction divise de manière itérative la chaîne en points et parcourt la structure de l'objet, renvoyant finalement la propriété demandée.
console.log(getDescendantProp(r, "b.b2")); //-> 99
La fonction fournie prend uniquement en charge l'accès aux propriétés des objets imbriqués. Pour une utilisation plus avancée, vous pouvez le modifier pour gérer également les index de tableau :
function advancedGetDescendantProp(obj, desc) { var arr = desc.split("."); while(arr.length) { let key = arr.shift(); if (isNaN(key)) { obj = obj[key]; } else { obj = obj[parseInt(key)]; } if (!obj) return undefined; } return obj; }
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!