apps-script-utils (Русский) 2.1.1 Help

chunk

function chunk<T>(array: T[], size: number = 1): Array<T[]>;

chunk проходит массив один раз и нарезает его на группы по size элементов. Если длина не делится нацело, последняя группа получает остаток и оказывается короче остальных. Исходный массив не изменяется.

Оба аргумента проверяются до начала работы: не массив на входе или дробный size приводят к исключению, а не к тихо неверному результату. size, равный нулю или меньше, и пустой массив дают [], а не группы из пустых массивов.

Параметры

Параметр

Тип

Описание

array

T[]

Массив, который нужно разделить. Не изменяется.

size (необязательный) = 1

number

Длина каждой группы. Целое число; по умолчанию 1.

Возвращает

Array<T[]> — новый массив групп. Все группы, кроме последней, содержат ровно size элементов.

Исключения

Исключение

Условие

TypeError

array не является массивом.

TypeError

size не является целым числом.

Примеры

Разбиение на группы фиксированного размера

chunk(["a", "b", "c", "d"], 2); // => [["a", "b"], ["c", "d"]] chunk(["a", "b", "c", "d", "e"], 2); // => [["a", "b"], ["c", "d"], ["e"]]

Запись большого диапазона порциями

A single setValues call with tens of thousands of rows is the usual cause of an exceeded execution time. Splitting the data keeps each call small and each write independently recoverable.

/** * Appends rows in batches, so that one oversized `setValues` call cannot * exhaust the execution time limit. */ export function appendRows(sheet: GoogleAppsScript.Spreadsheet.Sheet, rows: string[][]): void { for (const batch of chunk(rows, 500)) { sheet.getRange(sheet.getLastRow() + 1, 1, batch.length, batch[0].length).setValues(batch); } }
function appendRows(sheet, rows) { for (const batch of chunk(rows, 500)) { sheet.getRange(sheet.getLastRow() + 1, 1, batch.length, batch[0].length).setValues(batch); } }

Крайние случаи

chunk([1, 2, 3]); // => [[1], [2], [3]] — size defaults to 1 chunk([], 2); // => [] chunk([1, 2, 3], 0); // => [] chunk("a,b,c", 2); // throws TypeError: Input 'array' must be an array. chunk([1, 2, 3], 1.5); // throws TypeError: Input 'size' must be an integer.

Смотрите также

Исходный код

src/lang/array/chunk.ts

23 September 2026

Эта документация сгенерирована нейросетью (Claude) на основе исходного кода библиотеки.