Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

just-chunk-array

dmitrytarassov100MIT1.0.3TypeScript support: included

A utility function that splits an array into subarrays (chunks) of a specified maximum length. 444B total js-code size.

array, arrays, chunk, chunk-array, split, array-split, slice

readme

Dynamic JSON Badge

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 of maxLength.

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.