UNPKG

791 BJavaScriptView Raw
1// Copyright 2017-2022 @polkadot/util authors & contributors
2// SPDX-License-Identifier: Apache-2.0
3
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 */
18export function arrayChunk(array, chunkSize) {
19 const outputSize = Math.ceil(array.length / chunkSize); // noop for the single-split case
20
21 if (outputSize === 1) {
22 return [array];
23 }
24
25 const output = Array(outputSize);
26
27 for (let i = 0; i < outputSize; i++) {
28 const offset = i * chunkSize;
29 output[i] = array.slice(offset, offset + chunkSize);
30 }
31
32 return output;
33}
\No newline at end of file