Question :
Comment pouvez-vous récupérer les valeurs d'un objet JavaScript imbriqué ou tableau utilisant un chemin de chaîne qui spécifie la propriété ou l'élément noms ?
Réponse :
En utilisant du JavaScript pur, vous pouvez y parvenir avec la fonction d'assistance suivante :
Object.byString = function (o, s) { s = s.replace(/\[(\w+)\]/g, "."); // convert indexes to properties s = s.replace(/^\./, ""); // strip a leading dot var a = s.split("."); for (var i = 0, n = a.length; i < n; ++i) { var k = a[i]; if (k in o) { o = o[k]; } else { return; } } return o; };
Cette fonction prend deux paramètres : l'objet ou le tableau à parcourir, et un chemin de chaîne représentant les propriétés ou les éléments à parcourir récupérer.
Exemple :
Utilisons l'exemple de structure de données fourni :
var someObject = { part1: { name: "Part 1", size: "20", qty: "50", }, part2: { name: "Part 2", size: "15", qty: "60", }, part3: [ { name: "Part 3A", size: "10", qty: "20", }, { name: "Part 3B", size: "5", qty: "20", }, { name: "Part 3C", size: "7.5", qty: "20", }, ], };
Pour accéder à la propriété "name" de la "part1 " en utilisant le chemin de la chaîne, vous utiliseriez :
var part1name = Object.byString(someObject, "part1.name"); console.log(part1name); // Output: Part 1
De même, pour récupérer la propriété "qty" de l'objet "part2":
var part2quantity = Object.byString(someObject, "part2.qty"); console.log(part2quantity); // Output: 60
Et pour accéder à la propriété "name" du premier élément du tableau "part3":
var part3name1 = Object.byString(someObject, "part3[0].name"); console.log(part3name1); // Output: Part 3A
Remarque : Il est important de préfixer les index de tableaux numériques avec des crochets ("[") et de les suffixer avec des crochets et un point ("]."). Cela garantit que la fonction accède correctement aux éléments du tableau.
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!