rhodash
Version:
A deadly simple alternative to lodash
19 lines (17 loc) • 554 B
text/typescript
/**
* For a given sequence, divide it into chunks of a given size and group them into arrays.
*
* @param array array you want to make chunk
* @param size chunk size
* @returns chunked array
* @example chunk([1, 2, 3, 4, 5], 3) // => [[1, 2, 3], [4, 5]]
*/
export function chunk<T>(array: readonly T[], size: number): T[][] {
if (size <= 0) return [[]]
const result = [] as T[][]
for (let i = 0; i < array.length; i++) {
if (i % size === 0) result.push([array[i]])
else result[result.length - 1].push(array[i])
}
return result
}