Iterator.prototype.chunks()
Die Methode chunks() von Iterator-Instanzen gibt ein neues Iterator-Hilfsobjekt zurück, das die Elemente des ursprünglichen Iterators in aufeinanderfolgende Arrays aufteilt. Bei jedem Iterationsschritt entnimmt das Hilfsobjekt dem zugrunde liegenden Iterator die angegebene Anzahl von Elementen und gibt sie gemeinsam zurück.
Um überlappende Sequenzen (d.h. ein gleitendes Fenster) auszugeben, siehe Iterator.prototype.windows().
Syntax
chunks(chunkSize)
Parameter
chunkSize-
Die Anzahl der Elemente in jedem Array. Muss eine positive ganze Zahl kleiner als 232 sein (die maximale Array-Länge).
Rückgabewert
Ein neues Iterator-Hilfsobjekt. Bei jedem Aufruf der Methode next() des zurückgegebenen Hilfsobjekts rückt der ursprüngliche Iterator um chunkSize Elemente vor, und diese Elemente werden gemeinsam als Array zurückgegeben.
Wenn im ursprünglichen Iterator noch Elemente vorhanden sind, aber weniger als chunkSize, werden diese dennoch als Array zurückgegeben (dessen Länge also kleiner als chunkSize ist). Beim nächsten Aufruf von next() ist das Hilfsobjekt dann abgeschlossen.
Wenn im ursprünglichen Iterator keine Elemente mehr vorhanden sind, ist das Hilfsobjekt sofort abgeschlossen, ohne ein leeres Array zurückzugeben.
Ausnahmen
TypeError-
Wird ausgelöst, wenn
chunkSizekeine ganze Zahl ist. RangeError-
Wird ausgelöst, wenn
chunkSizekleiner als 1 oder größer als 232-1 ist.
Beispiele
>Elemente in einem Raster ausgeben
Das folgende Beispiel erstellt einen Iterator, der Glieder der Fibonacci-Folge ausgibt. Anschließend werden diese in einem Raster dargestellt, indem jeweils 5 Elemente abgerufen werden.
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> |