Iterator.prototype.chunks()
Экспериментально: Это экспериментальная технология
Внимательно проверьте таблицу совместимости с браузерами перед использованием в рабочем проекте.
Экспериментально: Это экспериментальная технология
Внимательно проверьте таблицу совместимости с браузерами перед использованием в рабочем проекте.
Метод chunks() экземпляров Iterator возвращает новый объект-помощник итератора, который разбивает элементы исходного итератора на последовательные части (чанки) массива. Каждый раз, когда помощник итерируется, он получает указанное количество элементов из базового итератора и возвращает их вместе.
Чтобы получать перекрывающиеся последовательности (т. е. скользящее окно), см. Iterator.prototype.windows().
Синтаксис
chunks(chunkSize)
Параметры
-
chunkSize - Количество элементов в каждом чанке. Должно быть положительным целым числом, меньшим 232 (максимальная длина массива).
Возвращаемое значение
Новый объект-помощник итератора. Каждый раз, когда вызывается метод next() возвращаемого помощника итератора, исходный итератор продвигается на chunkSize элементов, и эти элементы возвращаются вместе в виде массива.
Если в исходном итераторе осталось некоторое количество элементов, но меньше, чем chunkSize, эти элементы все равно возвращаются в виде массива (поэтому длина меньше chunkSize), а помощник итератора будет немедленно завершен при следующем вызове next().
Если в исходном итераторе не осталось элементов, помощник итератора немедленно завершается, не возвращая пустой массив.
Исключения
-
TypeError - Выбрасывается, если
chunkSizeне является целым числом. -
RangeError - Выбрасывается, если
chunkSizeменьше 1 или больше 232-1.
Примеры
Печать элементов в виде сетки
Следующий пример создает итератор, который возвращает члены последовательности Фибоначчи. Затем они выводятся в виде сетки, извлекая по 5 элементов за раз.
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"));
}
Вывод:
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
Спецификации
| Спецификация |
|---|
| Iterator Chunking # sec-iterator.prototype.chunks |
Совместимость с браузерами
| Десктоп | Мобильные | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
chunks |
Нет |
Нет |
154 |
Нет |
предпросмотр |
Нет |
154 |
Нет |
Нет |
Нет |
Нет |
Нет |
1.4.0 |
? |
? |
См. также
- Полифил
Iterator.prototype.chunksвcore-js - Полифил es-shims для
Iterator.prototype.chunks IteratorIterator.prototype.windows()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Iterator/chunks