Comment parcourir un objet en Javascript

J’ai un objet JavaScript comme le suivant :

var persons = {
    "p1": "alex",
    "p2": "jean",
    "p3": "yohan"
};

Comment puis-je parcourir tous les éléments de persons (p1, p2, p3…) en utilisant une boucle et récupérer leurs clés et leurs valeurs ?

Vous pouvez utiliser la boucle for-in comme montré dans l’exemple suivant:

var persons = {
    "p1": "alex",
    "p2": "jean",
    "p3": "yohan"
};

for (var key in persons) {
    if (persons.hasOwnProperty(key)) {
        console.log(key + " -> " + persons[key]);
    }
}

Sortie:

p1 -> alex
p2 -> jean
p3 -> yohan

Vous pouvez aussi utiliser la boucle for-of comme montré dans l’exemple suivant:

var persons = {
    "p1": "alex",
    "p2": "jean",
    "p3": "yohan"
};

for (var key of Object.keys(p)) {
    console.log(key + " -> " + p[key])
}

Sortie:

p1 -> alex
p2 -> jean
p3 -> yohan

Sous ECMAScript 5, vous pouvez combiner Object.keys() et Array.prototype.forEach():

var persons = {
    "p1": "alex",
    "p2": "jean",
    "p3": "yohan"
};

Object.keys(persons).forEach(function(key) {
    console.log(key, persons[key]);
});

ECMAScript 6 ajoute for…of:

for (const key of Object.keys(persons)) {
    console.log(key, persons[key]);
}

ECMAScript 8 ajoute Object.entries():

Object.entries(persons).forEach(
    ([key, value]) => console.log(key, value)
);

Je vous recommande de lire ce tutoriel: