Maison > interface Web > js tutoriel > Comment accéder aux valeurs d'objets/tableaux JavaScript imbriqués à l'aide de chemins de chaîne ?

Comment accéder aux valeurs d'objets/tableaux JavaScript imbriqués à l'aide de chemins de chaîne ?

Linda Hamilton
Libérer: 2024-12-22 05:37:12
original
940 Les gens l'ont consulté

How to Access Nested JavaScript Object/Array Values Using String Paths?

Accès aux propriétés et aux éléments à l'aide de chemins de chaîne

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;
};
Copier après la connexion

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",
    },
  ],
};
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal