Python Tutorial

Itérables JavaScript

Les objets itérables sont des objets qui peuvent être itérés avec for..of.

Techniquement, les itérables doivent implémenter le Symbol.iterator méthode.

Itérer sur une chaîne

Vous pouvez utiliser un for..of boucle pour itérer sur les éléments d’une chaîne :

Exemple

pour (const x de “Infodewi”) {
// bloc de code à exécuter
}

Essayez-le vous-même »


Itérer sur un tableau

Vous pouvez utiliser un for..of boucle pour itérer sur les éléments d’un tableau :

Exemple

pour (const x de [1,2,3,4,5]) {
// bloc de code à exécuter
}

Essayez-le vous-même »


Itérateurs JavaScript

Le protocole itérateur définit comment produire un séquence de valeurs d’un objet.

Un objet devient un itérateur lorsqu’il met en œuvre un next() méthode.

Le next() doit renvoyer un objet avec deux propriétés :

  • valeur (la valeur suivante)
  • fait (vrai ou faux)
valeur La valeur renvoyée par l’itérateur
(Peut être omis si done est vrai)
fait vrai si l’itérateur a terminé
FAUX si l’itérateur a produit une nouvelle valeur


Itérable fait maison

Cet itérable renvoie sans fin : 10,20,30,40, …. À chaque fois
next()
est appelé:

Exemple

// Itérable fait maison
function mesNombres() {
soit n = 0 ;
retour {
suivant : fonction() {
n += 10 ;
renvoie {value:n, done:false} ;
}
} ;
}

// Créer un itérable
const n = myNumbers();
n.suivant(); // Renvoie 10
n.suivant(); // Renvoie 20
n.suivant(); // Renvoie 30

Essayez-le vous-même »

Le problème avec une maison rendue itérable :

Il ne supporte pas le JavaScript for..of déclaration.

Un itérable JavaScript est un objet qui a un Symbole.itérateur.

Le Symbol.iterator est une fonction qui retourne un next() fonction.

Un itérable peut être itéré avec le code : for (const x of iterable) { }

Exemple

// Créer un objet
mesNuméros = {} ;

// Rendre itérable
mesNuméros[Symbol.iterator] = fonction() {
soit n = 0 ;
fait = faux ;
retour {
suivant() {
n += 10 ;
si (n == 100) {fait = vrai}
renvoie {value:n, done:done} ;
}
} ;
}

Maintenant, vous pouvez utiliser for..of

for (const num of myNumbers) {
// N’importe quel code ici
}

Essayez-le vous-même »

La méthode Symbol.iterator est appelée automatiquement par for..of.

Mais on peut aussi le faire “manuellement”:

Exemple

let iterator = myNumbers[Symbol.iterator]();

tandis que (vrai) {
résultat const = iterator.next();
si (result.done) pause ;
// N’importe quel code ici
}

Essayez-le vous-même »

#Itérables #JavaScript

Related Articles

Back to top button