Maison > interface Web > js tutoriel > Comment puis-je parcourir efficacement une arborescence d'objets JSON en JavaScript pur ?

Comment puis-je parcourir efficacement une arborescence d'objets JSON en JavaScript pur ?

Barbara Streisand
Libérer: 2024-11-30 17:34:15
original
202 Les gens l'ont consulté

How Can I Efficiently Traverse a JSON Object Tree in Pure JavaScript?

Parcours d'une arborescence d'objets JSON en JavaScript sans bibliothèques externes

Parcourir une arborescence d'objets JSON peut être une tâche courante lorsque l'on travaille avec des structures de données complexes . Bien que JavaScript fournisse une riche bibliothèque de fonctions pour travailler avec des objets, il n'existe pas de bibliothèque dédiée pour parcourir les arborescences d'objets. Cela peut sembler une tâche simple, mais cela conduit souvent à réinventer la roue.

Contrairement à XML, qui propose diverses approches basées sur DOM pour parcourir les arbres, JavaScript ne dispose pas de mécanismes similaires pour les objets JSON. Cet article présente une solution efficace et simple pour parcourir les arborescences d'objets JSON à l'aide de fonctions JavaScript pures.

Fonction de traversée récursive personnalisée

La solution consiste à créer une fonction récursive personnalisée qui traverse l'arborescence des objets. La fonction traverse() prend deux paramètres :

  • o : L'objet JSON à parcourir
  • func : Une fonction de rappel qui traite chaque nœud de l'arborescence

La fonction parcourt chaque propriété et sa valeur dans l'objet. Pour chaque paire propriété-valeur, il appelle la fonction de rappel pour traiter les données. Si la valeur est un autre objet et non nulle, la fonction s'appelle récursivement pour parcourir l'objet enfant.

Exemple d'utilisation

Pour démontrer l'utilisation, considérons ce qui suit Objet JSON :

var o = { 
    foo:"bar",
    arr:[1,2,3],
    subo: {
        foo2:"bar2"
    }
};
Copier après la connexion

Nous définissons une fonction process() pour enregistrer la clé et la valeur de chacun node:

function process(key,value) {
    console.log(key + " : "+value);
}
Copier après la connexion

Maintenant, nous pouvons parcourir l'arborescence des objets en utilisant traverse():

traverse(o,process);
Copier après la connexion

Cela affichera ce qui suit :

foo : bar
arr : 1
arr : 2
arr : 3
subo : [object Object]
foo2 : bar2
Copier après la connexion

Notez que la sortie inclut la clé du sous-objet mais pas ses propriétés. En effet, la fonction traverse() ne traverse pas le sous-objet de manière récursive. Pour réaliser une traversée en profondeur, il faudrait modifier le code 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!

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