We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

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 uniquement nom_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'exception StopIteration 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

Nous convertissons les données de compatibilité dans un format JSON. Ce tableau de compatibilité utilise encore l'ancien format car nous n'avons pas encore converti les données qu'il contient. Vous pouvez nous aider en contribuant !

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

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