Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Iterator.prototype.chunks()

Die chunks() Methode von Iterator Instanzen gibt ein neues Iterator-Helferobjekt zurück, das die Elemente des ursprünglichen Iterators in aufeinanderfolgende Array-Teile aufteilt. Jedes Mal, wenn der Helfer iteriert wird, erhält er die angegebene Anzahl von Elementen aus dem zugrunde liegenden Iterator und liefert sie zusammen.

Um sich überlappende Sequenzen (d.h. Gleitfenster) zu erzeugen, siehe Iterator.prototype.windows().

Syntax

js
chunks(chunkSize)

Parameter

chunkSize

Die Anzahl der Elemente in jedem Chunk. Muss eine positive Ganzzahl kleiner als 232 (die maximale Array-Länge) sein.

Rückgabewert

Ein neues Iterator-Helferobjekt. Jedes Mal, wenn die next()-Methode des zurückgegebenen Iterator-Helfers aufgerufen wird, wird der ursprüngliche Iterator um chunkSize Elemente weitergeführt, und diese Elemente werden zusammen als Array geliefert.

Wenn der ursprüngliche Iterator einige, aber weniger als chunkSize Elemente übrig hat, werden diese Elemente trotzdem als Array geliefert (die Länge ist also kleiner als chunkSize), und der Iterator-Helfer wird sofort abgeschlossen, wenn next() das nächste Mal aufgerufen wird.

Wenn der ursprüngliche Iterator keine Elemente mehr übrig hat, wird der Iterator-Helfer sofort ohne ein leeres Array abgeschlossen.

Ausnahmen

TypeError

Wird ausgelöst, wenn chunkSize keine Ganzzahl ist.

RangeError

Wird ausgelöst, wenn chunkSize kleiner als 1 oder größer als 232-1 ist.

Beispiele

Elemente in einem Raster drucken

Das folgende Beispiel erstellt einen Iterator, der Begriffe der Fibonacci-Folge ausgibt. Dann werden sie in einem Rasterlayout gedruckt, indem jedes Mal 5 Elemente abgerufen werden.

js
function* fibonacci() {
  let current = 1;
  let next = 1;
  while (true) {
    yield current;
    [current, next] = [next, current + next];
  }
}

const rows = fibonacci().chunks(5);

for (const row of rows.take(5)) {
  console.log(row.join("\t"));
}

Ausgabe:

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

Spezifikationen

Spezifikation
Iterator Chunking
# sec-iterator.prototype.chunks

Browser-Kompatibilität

Siehe auch