Non-standard. La fonction
Iterator
est une fonctionnalité propre à ECMAScript et sera retiré dans le futur. Pour utiliser des fonctions pérennes, préférer les boucles 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.
Syntaxe
Iterator(objet, [keyOnly])
Paramètres
objet
- L'objet dont on souhaite itérer sur les propriétés.
keyOnly
- Si
keyOnly
est une valeur équivalente àtrue
,Iterator.prototype.next
renverra uniquementnom_propriété
.
Description
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
.
Propriétés
Iterator.prototype[@@iterator]
- Renvoie une fonction qui renvoie l'objet itérateur afin de respecter les protocoles d'itération.
Méthodes
Iterator.prototype.next
- Renvoie le prochain item élément au format
[nom_propriété, valeur_propriété]
. S'il n'y a plus d'éléments, l'exceptionStopIteration
est levée.
Exemples
Itérer sur les propriétés d'un objet
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
Itérer sur les propriétés d'un objet avec l'instruction historique for...in
var a = { x: 10, y: 20, }; for (var [nom, valeur] in Iterator(a)) { console.log(nom, valeur); // x 10 // y 20 }
Itérer grâce à 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 }
Itérer sur les noms des propriétés
var a = { x: 10, y: 20, }; for (var nom in Iterator(a, true)) { console.log(nom); // x // y }
Utiliser une instance de 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 }
Utiliser une instance d'Iterator
var a = { x: 10, y: 20, }; var i = Iterator(a); console.log(i == Iterator(i)); // true
Spécifications
Non-standard. Ne fait partie d'aucun standard.
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | Pas de support | (Oui) | 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 | (Oui) | Pas de support | Pas de support | Pas de support |
Voir aussi
Étiquettes et contributeurs liés au document
Étiquettes :
Contributeurs à cette page :
SphinxKnight
Dernière mise à jour par :
SphinxKnight,