Spec-Zone.ru › JavaScript

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
  • Iterator
  • Iterator.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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API