Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

for each...in

Obsolète
Cette fonctionnalité a été supprimée des standards du Web. Bien que quelques navigateurs puissent encore la supporter, elle est en cours d'éradication. Ne l'utilisez ni dans d'anciens projets, ni dans de nouveaux. Les pages et applications Web l'utilisant peuvent cesser de fonctionner à tout moment.

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 mais l'instruction for each...in ne sera pas désactivée puis retirée afin de respecter une certaine rétro-compatibilité. Il faut désormais utiliser l'instruction for...of. (Voir bug 791343.)
Firefox lance désormais des avertissements lorsque des boucles for each...in. Veuillez voir 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é 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 bloc ({ ... }) 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 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

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support simple Pas de support 1.5 (1.8) Pas de support Pas de support Pas de support
Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple Pas de support Pas de support 1.0 (1.0) Pas de support Pas de support Pas de support

Voir aussi

  • for...in : une instruction similaire permettant d'itérer sur les noms des propriétés.
  • for...of : une instruction similaire qui permet d'itérer sur les valeurs des propriétés mais dont le comportement est différent de for each...in. Cette instruction ne s'utilise que pour les types itérables.
  • for

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, Skullpand4, teoli, senshu
 Dernière mise à jour par : SphinxKnight,