@blakek/array-split
v2.0.1
Published
💔 Split and chunk arrays, strings, and more
Downloads
38
Readme
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