@blakek/array-split
TypeScript icon, indicating that this package has built-in type declarations

2.0.1 • Public • Published

array-split

💔 Split and chunk arrays, strings, and more

Functions to help split an array at an index and chunk an array into pieces.

Install

Using Yarn:

$ yarn add @blakek/array-split

…or using npm:

$ npm i --save @blakek/array-split

API

chunk

function chunk<T extends Sliceable>(chunkSize: number, array: T): T[];

Chunks an array into pieces of a given size.

import { chunk } from '@blakek/array-split';

chunk(2, [1, 2, 3, 4]);
//» [[1, 2], [3, 4]]

chunk(3, 'abcdefghij');
//» ['abc', 'def', 'ghi', 'j']

chunk(3, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]);
//» [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11]]

splitAtIndex

function splitAtIndex<T extends Sliceable>(index: number, array: T): T[];

Splits an array into two pieces at the given index. Anything below the index is in the first array, the index and above are the second array.

Note, you may pass a negative index to split at the end of the array.

import { splitAtIndex } from '@blakek/array-split';

splitAtIndex(0, [1, 2, 3, 4]);
//» [[], [1, 2, 3, 4]]

splitAtIndex(1, [1, 2, 3, 4]);
//» [[ 1 ], [2, 3, 4]]

splitAtIndex(-1, ['a', 'b', 'c']);
//» [[ 'a', 'b' ], ['c']]

splitAtIndex(3, ['a', 'b', 'c', 'd', 'e']);
//» [['a', 'b', 'c'], ['d', 'e']]

splitAtIndex(1, 'abc');
//» ['a', 'bc']

splitAtIndices

function splitAtIndices<T extends Sliceable>(
  [index, nextIndex, ...indices]: number[],
  array: T
): T[];

Similar to splitAtIndex but slices an array at multiple indices.

import { splitAtIndices } from '@blakek/array-split';

splitAtIndices([1, 3], ['a', 'b', 'c', 'd', 'e']);
//» [['a'], ['b', 'c'], ['d', 'e']]

splitAtIndices([2, 5], 'blakek');
//» ['bl', 'ake', 'k']

splitAtIndices([-4, -1], 'github');
//» ['gi', 'thu', 'b']

Contributing

Node.js and Yarn are required to work with this project.

To install all dependencies, run:

yarn

Useful Commands

yarn build Builds the project to ./dist
yarn format Format the source following the Prettier styles
yarn test Run project tests
yarn test --watch Run project tests, watching for file changes

License

MIT

Package Sidebar

Install

npm i @blakek/array-split

Weekly Downloads

35

Version

2.0.1

License

MIT

Unpacked Size

103 kB

Total Files

9

Last publish

Collaborators

  • blakek