This function splits an array into chunks of a specified size.
JavaScript:
let chunk = (arr, size) => Array.from({length: Math.ceil(arr.length / size)}, (v, i) => arr.slice(i * size, i * size + size));
// Example
console.log(chunk([1, 2, 3, 4, 5, 6, 7, 8, 9], 3)); // [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
console.log(chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'], 4)); // [['a', 'b', 'c', 'd'], ['e', 'f', 'g', 'h'], ['i']]
TypeScript:
let chunk = (arr: T[], size: number): T[][] => Array.from({length: Math.ceil(arr.length / size)}, (v, i) => arr.slice(i * size, i * size + size));
// Example
console.log(chunk([1, 2, 3, 4, 5, 6, 7, 8, 9], 3)); // [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
console.log(chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'], 4)); // [['a', 'b', 'c', 'd'], ['e', 'f', 'g', 'h'], ['i']]