--- title: Iterator slug: Archive/Web/Iterator tags: - JavaScript - Legacy Iterator - Reference translation_of: Archive/Web/Iterator ---
Iterator
est une fonctionnalité propre à ECMAScript et sera retiré dans le futur. Pour utiliser des fonctions pérennes, préférer les boucles {{jsxref("Instructions/for...of")}} et le protocole itérateur.La fonction Iterator
renvoie un objet implémentant le protocole itérateur historique qui permet d'itérer sur les propriétés énumérables d'un objet.
Iterator(objet, [keyOnly])
objet
keyOnly
keyOnly
est une valeur équivalente à true
, Iterator.prototype.next
renverra uniquement nom_propriété
.Cette fonction renvoie une instance d'Iterator
qui permet d'itérer sur un objet. Pour chaque itération, l'instance renverra un tableau [nom_propriété, valeur_propriété]
si keyOnly
est équivalente à false
. Sinon, chaque itération renverra uniquement nom_propriété
. Si objet
est une instance d'Iterator
ou de Generator
, la fonction renverra objet
.
Iterator.prototype[@@iterator]
Iterator.prototype.next
[nom_propriété, valeur_propriété]
. S'il n'y a plus d'éléments, l'exception {{jsxref("StopIteration")}} est levée.var a = { x: 10, y: 20, }; var iter = Iterator(a); console.log(iter.next()); // ["x", 10] console.log(iter.next()); // ["y", 20] console.log(iter.next()); // renvoie StopIteration
for...in
var a = { x: 10, y: 20, }; for (var [nom, valeur] in Iterator(a)) { console.log(nom, valeur); // x 10 // y 20 }
for-of
var a = { x: 10, y: 20, }; for (var [nom, valeur] of Iterator(a)) { // @@iterator est utilisé console.log(nom, valeur); // x 10 // y 20 }
var a = { x: 10, y: 20, }; for (var nom in Iterator(a, true)) { console.log(nom); // x // y }
Generator
function* f() { yield "a"; yield "b"; } var g = f(); console.log(g == Iterator(g)); // true for (var v in Iterator(g)) { console.log(v); // a // b }
Iterator
var a = { x: 10, y: 20, }; var i = Iterator(a); console.log(i == Iterator(i)); // true
Non-standard. Ne fait partie d'aucun standard.
{{CompatibilityTable}}
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | {{CompatNo}} | {{CompatVersionUnknown}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | {{CompatNo}} | {{CompatNo}} | {{CompatVersionUnknown}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |