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

Comment parcourir des objets imbriqués en JavaScript ?

Linda Hamilton
Libérer: 2024-12-23 10:55:09
original
898 Les gens l'ont consulté

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

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

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!

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