UNPKG

853 BJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.arrayChunk = void 0;
4/**
5 * @name arrayChunk
6 * @summary Split T[] into T[][] based on the defind size
7 * @description
8 * Returns a set ao arrays based on the chunksize
9 * @example
10 * <BR>
11 *
12 * ```javascript
13 * import { arrayChunk } from '@polkadot/util';
14 *
15 * arrayChunk([1, 2, 3, 4, 5]); // [[1, 2], [3, 4], [5]]
16 * ```
17 */
18function arrayChunk(array, chunkSize) {
19 const outputSize = Math.ceil(array.length / chunkSize);
20 // shortcut for the single-split case
21 if (outputSize === 1) {
22 return [array];
23 }
24 const output = Array(outputSize);
25 for (let i = 0; i < outputSize; i++) {
26 const offset = i * chunkSize;
27 output[i] = array.slice(offset, offset + chunkSize);
28 }
29 return output;
30}
31exports.arrayChunk = arrayChunk;