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
keyOnlyest une valeur équivalente àtrue,Iterator.prototype.nextrenverra 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'exceptionStopIterationest 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,