--- title: for each...in slug: Web/JavaScript/Reference/Instructions/for_each...in tags: - Déprécié - E4X - Instruction - JavaScript - Reference translation_of: Archive/Web/JavaScript/for_each...in ---
{{JsSidebar("Statements")}}{{deprecated_header}}

L'instruction for each...in est dépréciée car elle appartient au standard ECMA-357 (E4X). E4X sera désactivé par défaut puis retiré à l'avenir. Il faut désormais utiliser l'instruction {{jsxref("Instructions/for...of","for...of")}}. (Voir {{ bug("791343")}}.)
Firefox lance désormais des avertissements lorsque des boucles for each...in et cette instruction a été retirée du canal Nightly.
Veuillez consulter l'article sur cet avertissement pour des indications quant aux solutions de migration.

L'instruction for each...in itère une variable donnée sur toutes les propriétés d'un objet. Pour chaque propriété distincte, une instruction spécifique est exécutée.

Syntaxe

for each (variable in objet) {
  instruction
}
variable
Une variable à itérer sur les valeurs des propriétés, elle peut être déclarée avec le mot-clé {{jsxref("Instructions/var","var")}}. Cette variable est locale à la fonction et non à la boucle.
objet
L'objet pour lequel les propriétés sont itérées.
instruction
Une instruction à exécuter pour chaque propriétés. Pour effectuer plusieurs instructions au sein de la boucle, il faut utiliser une instruction de {{jsxref("Instructions/block","bloc","",1)}} ({ ... }) pour regrouper les instructions.

Description

L'itération ne s'effectue que sur les propriétés spécifiques, définies par l'utilisateur. Elle ne s'effectuera pas sur les propriétés implicites déjà intégrées comme les méthodes objet telles que la méthode indexOf des chaînes de caractères.

Exemple

Utiliser for each...in

Attention : Ne jamais utiliser cette boucle sur un tableau. Ne l'utiliser que pour les objets. (Voir des détails sur la page de l'instruction {{jsxref("Instructions/for...in")}}).

Le fragment de code parcourt les propriétés d'un objet et en calcule leur somme.

var somme = 0;
var obj = {prop1: 5, prop2: 13, prop3: 8};

for each (var item in obj) {
  somme += item;
}

console.log(somme); // affiche "26", ce qui correspond à 5+13+8

Spécifications

Cette instruction ne fait partie d'aucune spécification ECMA-262. Elle a été implémentée avec JavaScript 1.6 et est dépréciée.

Compatibilité des navigateurs

{{Compat("javascript.statements.for_each_in")}}

Voir aussi