for each...in

par 3 contributeurs :

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.)

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(sum); // 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, teoli, senshu
Dernière mise à jour par : SphinxKnight,
Masquer la barre latérale