JSFiddle - React, Tailwind, and code Playground
by Farzad YZ
JavaScript
const sliced = sliceArray([1, 2, 3, 4, 5, 6, 7], 2); // [[1,2], [3,4], [5,6], [7]]
console.log(sliced)
const generateRangeArray = max => new Array(max).fill(0).map((_, i) => i + 1)
console.log(sliceArray(generateRangeArray(100), 9))
function sliceArray(array, chunkSize) {
if (chunkSize <= 0) {
throw Error('chunkSize can not be zero or negative');
}
const groupsCount = Math.ceil(array.length / chunkSize);
let output = [];
for (let i = 0; i < groupsCount * chunkSize; i += chunkSize) {
output.push(array.slice(i, i + chunkSize));
}
return output;
}