Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

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

js
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 chunkSize n'est pas un entier.

RangeError

Levée si chunkSize est 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.

js
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

Compatibilité des navigateurs

Voir aussi