Maison >interface Web >js tutoriel >Comment puis-je accéder à des valeurs d'objet profondément imbriquées à l'aide d'un chemin de chaîne ?

Comment puis-je accéder à des valeurs d'objet profondément imbriquées à l'aide d'un chemin de chaîne ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-24 19:24:02486parcourir

How can I Access Deeply Nested Object Values Using a String Path?

Acquérir des valeurs d'objet profondément imbriquées via un chemin de chaîne

L'accès aux propriétés d'objet profondément imbriquées peut être fastidieux, en particulier lorsque vous utilisez des chemins de chaîne pour parcourir l'objet. Cette question cherche une solution pour récupérer les valeurs des objets en fonction d'un chemin de chaîne fourni.

Solution proposée

L'approche suggérée utilise la fonction suivante, deep_value, qui parcourt de manière itérative les propriétés de l'objet spécifiées dans le path string :

<code class="javascript">var deep_value = function(obj, path) {
  for (var i = 0, path = path.split('.'), len = path.length; i < len; i++) {
    obj = obj[path[i]];
  }
  return obj;
};</code>

Répartition

  • L'opération split('.') convertit le chemin de la chaîne en un tableau de noms de propriétés.
  • Une boucle est utilisé pour parcourir l'objet, en accédant à chaque propriété dans l'ordre.
  • La dernière itération renvoie la valeur imbriquée finale.

Exemple

Considérons l'objet suivant :

var obj = {
  foo: { bar: 'baz' }
};

Pour accéder à la valeur de obj.foo.bar en utilisant le chemin de chaîne "foo.bar", la fonction deep_value peut être invoquée comme suit :

deep_value(obj, "foo.bar"); // returns "baz"

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!

Déclaration:
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