Comment parcourir un objet en JavaScript : 5 méthodes avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Comment parcourir un objet en JavaScript : du débutant au pro

\n\n

Tout développeur se retrouve tôt ou tard confronté à la question : « Comment parcourir toutes les propriétés d'un objet ? ». Cette question est si populaire qu'elle a recueilli des milliers de vues et des centaines de réponses sur Stack Overflow. Et ce n'est pas surprenant : les objets en JavaScript sont la base de tout, des configurations aux données provenant du serveur.

\n\n

Dans ce tutoriel, nous allons passer en revue toutes les principales méthodes pour parcourir un objet en JavaScript, des classiques aux méthodes modernes. Vous apprendrez quand utiliser for...in, en quoi Object.keys est meilleur, et comment Object.entries simplifie la vie. C'est parti !

\n\n

Préparation : créons un objet de test

\n\n

Pour que les exemples soient clairs, prenons un objet utilisateur simple :

\n\n
const user = {\n  name: 'Anna',\n  age: 28,\n  city: 'Moscou',\n  isAdmin: false\n};
\n\n

Notre objectif est d'afficher toutes les clés et valeurs. Voyons quels outils sont disponibles dans l'arsenal de JavaScript.

\n\n

1. La boucle for...in — un grand classique

\n\n

La méthode la plus ancienne et la plus basique pour parcourir les propriétés d'un objet. Elle existe depuis ES3 et fonctionne dans tous les navigateurs.

\n\n
for (let key in user) {\n  console.log(key + ': ' + user[key]);\n}\n// name: Anna\n// age: 28\n// city: Moscou\n// isAdmin: false
\n\n

Nuance importante : for...in parcourt non seulement les propriétés propres, mais aussi celles héritées via le prototype. Pour les filtrer, utilisez hasOwnProperty :

\n\n
for (let key in user) {\n  if (user.hasOwnProperty(key)) {\n    console.log(key + ': ' + user[key]);\n  }\n}
\n\n

Les objets modernes ont rarement des propriétés prototypiques superflues, mais prendre l'habitude de vérifier hasOwnProperty vous évitera des bugs lors du travail avec des bibliothèques.

\n\n

2. Object.keys() — une approche moderne

\n\n

La méthode Object.keys() retourne un tableau des clés propres d'un objet. Cela élimine les problèmes liés aux prototypes et donne accès à toutes les méthodes des tableaux.

\n\n
const keys = Object.keys(user);\nconsole.log(keys); // ['name', 'age', 'city', 'isAdmin']\n\nkeys.forEach(key => {\n  console.log(key + ': ' + user[key]);\n});
\n\n

Avantages :

\n
    \n
  • Fonctionne uniquement avec les propriétés propres (non héritées)
  • \n
  • Retourne un tableau — on peut utiliser forEach, map, filter
  • \n
  • Code lisible et prévisible
  • \n
\n\n

C'est ma méthode préférée quand j'ai simplement besoin d'obtenir une liste de clés et de travailler avec.

\n\n

3. Object.values() — quand seules les valeurs comptent

\n\n

Parfois, seules les valeurs des propriétés nous intéressent, sans les clés. Par exemple, pour faire des sommes ou afficher des données.

\n\n
const values = Object.values(user);\nconsole.log(values); // ['Anna', 28, 'Moscou', false]\n\nvalues.forEach(value => {\n  console.log(value);\n});
\n\n

Cette méthode est apparue avec ES2017 et est parfaite pour travailler avec des collections de données où les clés n'ont pas d'importance.

\n\n

4. Object.entries() — le roi des méthodes

\n\n

Object.entries() retourne un tableau de tableaux, où chaque tableau imbriqué est une paire [clé, valeur]. C'est un outil universel pour parcourir un objet en JavaScript.

\n\n
const entries = Object.entries(user);\nconsole.log(entries);\n// [\n//   ['name', 'Anna'],\n//   ['age', 28],\n//   ['city', 'Moscou'],\n//   ['isAdmin', false]\n// ]\n\nentries.forEach(([key, value]) => {\n  console.log(`${key}: ${value}`);\n});
\n\n

Remarquez la déstructuration dans les paramètres de forEach : ([key, value]). Cela rend le code propre et concis.

\n\n

Quand l'utiliser :

\n
    \n
  • Vous avez besoin à la fois des clés et des valeurs
  • \n
  • Vous voulez transformer un objet en une autre structure (par exemple, en Map)
  • \n
  • Vous écrivez une fonctio

Blogs

Book Recommendations