Maison >interface Web >js tutoriel >Comment parcourir des objets imbriqués en JavaScript ?

Comment parcourir des objets imbriqués en JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-23 10:55:09900parcourir

How to Iterate Through Nested Objects in JavaScript?

Itérer sur un objet JavaScript avec des objets imbriqués

En JavaScript, l'accès aux propriétés d'un objet est simple en utilisant la notation par points ou par crochets. Cependant, lorsqu'il s'agit d'objets imbriqués, parcourir tous les membres peut être plus complexe.

Énoncé du problème :

Comment peut-on parcourir efficacement tous les membres d'un objet JavaScript , y compris les valeurs qui sont elles-mêmes des objets ? Par exemple, considérons l'objet suivant :

var validation_messages = {
    "key_1": {
        "your_name": "jimmy",
        "your_msg": "hello world"
    },
    "key_2": {
        "your_name": "billy",
        "your_msg": "foo equals bar"
    }
};

L'objectif est de parcourir toutes les propriétés de cet objet, en accédant au "votre_nom" et au "votre_msg" de chaque objet imbriqué.

Solution :

Pour parcourir un objet JavaScript avec des objets imbriqués, nous pouvons utiliser une combinaison des Méthode Object.keys() et une boucle for...in imbriquée. La méthode Object.keys() renvoie un tableau de tous les noms de propriétés énumérables d'un objet.

for (var key in validation_messages) {
    // skip loop if the property is from prototype
    if (!validation_messages.hasOwnProperty(key)) continue;

    var obj = validation_messages[key];
    for (var prop in obj) {
        // skip loop if the property is from prototype
        if (!obj.hasOwnProperty(prop)) continue;

        // your code
        alert(prop + " = " + obj[prop]);
    }
}

Dans cette solution :

  • La boucle for...in externe parcourt les clés de l'objet validation_messages.
  • Nous utilisons la méthode hasOwnProperty() pour garantir que nous accédons uniquement aux propriétés appartenant directement à l'objet, plutôt qu'à celles hérité du prototype.
  • Pour chaque propriété, nous accédons à l'objet imbriqué correspondant et procédons à une itération sur ses propriétés dans la boucle interne for...in.
  • Encore une fois, nous utilisons hasOwnProperty( ) pour filtrer les propriétés du prototype.
  • Dans la boucle interne, nous pouvons accéder et utiliser les propriétés selon nos besoins, par exemple en les affichant dans un alert.

Cette solution parcourt efficacement tous les membres de l'objet imbriqué, permettant un accès facile à leurs valeurs.

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