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;
}