Comment parcourir un objet en JavaScript : du débutant au pro
\n\nTout 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\nDans 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 !
Préparation : créons un objet de test
\n\nPour que les exemples soient clairs, prenons un objet utilisateur simple :
\n\nconst user = {\n name: 'Anna',\n age: 28,\n city: 'Moscou',\n isAdmin: false\n};\n\nNotre objectif est d'afficher toutes les clés et valeurs. Voyons quels outils sont disponibles dans l'arsenal de JavaScript.
\n\n1. La boucle for...in — un grand classique
\n\nLa 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\nfor (let key in user) {\n console.log(key + ': ' + user[key]);\n}\n// name: Anna\n// age: 28\n// city: Moscou\n// isAdmin: false\n\nNuance 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 :
for (let key in user) {\n if (user.hasOwnProperty(key)) {\n console.log(key + ': ' + user[key]);\n }\n}\n\nLes 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.
2. Object.keys() — une approche moderne
\n\nLa 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.
const keys = Object.keys(user);\nconsole.log(keys); // ['name', 'age', 'city', 'isAdmin']\n\nkeys.forEach(key => {\n console.log(key + ': ' + user[key]);\n});\n\nAvantages :
\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
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\n3. Object.values() — quand seules les valeurs comptent
\n\nParfois, 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\nconst values = Object.values(user);\nconsole.log(values); // ['Anna', 28, 'Moscou', false]\n\nvalues.forEach(value => {\n console.log(value);\n});\n\nCette 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\n4. Object.entries() — le roi des méthodes
\n\nObject.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.
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\nRemarquez la déstructuration dans les paramètres de forEach : ([key, value]). Cela rend le code propre et concis.
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