Itérateurs en JavaScript

Un itérateur est un nouveau concept de ES6. Un itérateur est un objet qui permet de parcourir un tableau, un objet, une chaîne de caractères ou même des objets personnalisés.
 
 
Iterator nous permet de boucler efficacement sur une collection d’objets comme un tableau, une chaîne de caractères, des objets ou d’autres structures de données.

Iterator est un design pattern qui nous permet de parcourir une liste ou une collection. En JavaScript, ils sont implémentés comme des objets. Avant d’entrer dans les détails, voici un exemple simple.

const nbrs = [1, 2, 3, 4, 5, 6];

for (const n of nbrs) {
  console.log(n);
}

Sortie :

1
2
3
4
5
6

En utilisant la boucle « for..of », vous pouvez effectuer une itération sur tout objet qui implémente le protocole « iterable ».

Les objets Iterator ont une méthode next() qui renvoie l’élément suivant de la séquence. Cette méthode retourne un objet avec deux propriétés: « done » et « value » et lorsque les appels de next() atteignent la fin de la séquence, la propriété « done » est définie sur true, sinon reste false.
 
 
Donc, next() renvoie:

{value: ‘valeur actuelle de l’itération’, done: ‘true/false’}

Itérateur est une interface qui spécifie qu’un objet peut être accessible s’il implémente une méthode dont la clé est [symbol.iterator].
 

Exemple d’itérateur
let langages = ['Javascript', 'Python', 'PHP'];
let it = langages[Symbol.iterator]();
console.log(it.next());
console.log(it.next());
console.log(it.next());
console.log(it.next());

Sortie :

Object {value: "Javascript", done: false}
Object {value: "Python", done: false}
Object {value: "PHP", done: false}
Object {value: undefined, done: true}

Si vous remarquez attentivement, le dernier objet {value: undefined, done: true}. Cela signifie que notre tableau ne contient que trois éléments et que jusqu’à 3 éléments, « done » est false, car le compilateur ne sait pas si la valeur suivante est présente ou non, il affiche donc « done = false ». Après cela, lorsque la valeur suivante n’est pas présente, il affichera « value = undefined » et « done = true ».
10 Bonnes pratiques de codage en Javascript

Récupérer la propriété « value »
let langages = ['Javascript', 'Python', 'PHP'];
let it = langages[Symbol.iterator]();
console.log(it.next().value);

Sortie :

"Javascript"

 

Récupérer la propriété « done »
let langages = ['Javascript', 'Python', 'PHP'];
let it = langages[Symbol.iterator]();
console.log(it.next().done);

Sortie :

false
QCM Javascript

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *