chunkArray([🐮, 🐑, 🐈, 🐙,🐓], 2) // [[🐮, 🐑], [🐈, 🐙] ,[🐓]]
chunkArray
A utility function that splits an array into subarrays (chunks) of a specified maximum length. 444B total js-code size.
Features
- Efficient Chunking: Pre-calculates the number of chunks to allocate the result array optimally.
- Type-Safe: Written in TypeScript for generic type support.
- Error Handling: Throws an error if the provided
maxLength
is not greater than zero.
Installation
yarn add just-chunk-array
# or
npm i just-chunk-array
Usage
Basic Example
import { chunkArray } from 'just-chunk-array';
const numbers = [1, 2, 3, 4, 5];
const maxLength = 2;
const result = chunkArray(numbers, maxLength);
// result: [[1, 2], [3, 4], [5]]
Handling Invalid Input
import { chunkArray } from 'just-chunk-array';
try {
chunkArray([1, 2, 3], 0);
} catch (error) {
console.error(error.message); // "maxLength must be greater than 0"
}
Parameters
array
(T[]
): The array to be chunked.maxLength
(number
): The maximum size for each chunk (must be greater than 0).
Return Value
T[][]
: An array of chunks, where each chunk is a subarray of the original array with a maximum length ofmaxLength
.
Performance Considerations
- Preallocation: Calculates the required number of chunks to allocate the result array in one step, minimizing memory reallocations.
- Optimized Loop: Iterates through the array in steps of
maxLength
, reducing loop overhead.
Testing
A comprehensive test suite is provided, including dynamic tests with randomly generated arrays, ensuring:
- Correct chunking of arrays.
- Preservation of the original array's order after chunking.
- Proper error handling when
maxLength
is invalid.
License
This project is licensed under the MIT License.