Iterator : méthode chunks()
Expérimental: Il s'agit d'une technologie expérimentale.
Vérifiez attentivement le tableau de compatibilité des navigateurs avant de l'utiliser en production.
La méthode chunks() des instances de Iterator retourne un nouvel objet d'aide à l'itérateur qui divise les éléments de l'itérateur original en morceaux consécutifs sous forme de tableau. Chaque fois que l'aide à l'itérateur est itérée, elle obtient le nombre défini d'éléments de l'itérateur sous-jacent et les retourne ensemble.
Pour obtenir des séquences qui se chevauchent (c'est-à-dire une fenêtre glissante), voir Iterator.prototype.windows().
Syntaxe
chunks(chunkSize)
Paramètres
chunkSize-
Le nombre d'éléments dans chaque morceau. Doit être un entier positif inférieur à 232 (la longueur maximale d'un tableau).
Valeur de retour
Un nouvel objet d'aide à l'itérateur. Chaque fois que la méthode next() de l'aide à l'itérateur retourné est appelée, l'itérateur original avance de chunkSize éléments, et ces éléments sont retournés ensemble sous forme de tableau.
Si l'itérateur original a encore quelques éléments mais moins que chunkSize, ces éléments sont toujours retournés sous forme de tableau (donc la longueur est inférieure à chunkSize), et l'aide à l'itérateur est immédiatement terminée la prochaine fois que next() est appelée.
Si l'itérateur original n'a plus d'éléments, l'aide à l'itérateur est immédiatement terminée sans retourner de tableau vide.
Exceptions
TypeError-
Levée si
chunkSizen'est pas un entier. RangeError-
Levée si
chunkSizeest inférieur à 1 ou supérieur à 232-1.
Examples
>Imprimer les éléments dans une grille
L'exemple suivant crée un itérateur qui produit les termes de la suite de Fibonacci. Ensuite, ils sont imprimés dans une disposition en grille en récupérant 5 éléments à la fois.
function* fibonacci() {
let current = 1;
let next = 1;
while (true) {
yield current;
[current, next] = [next, current + next];
}
}
const lignes = fibonacci().chunks(5);
for (const ligne of lignes.take(5)) {
console.log(ligne.join("\t"));
}
Sortie :
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025
Spécifications
| Spécification |
|---|
| Iterator Chunking> # sec-iterator.prototype.chunks> |