JSFiddle - React, Tailwind, and code Playground

JavaScript

const chunks = (arr, size = 3) => {
  let result = []
  while (arr.length) {
    result.push(arr.splice(0, size))
  }
  return result;
}

const chunks1 = (arr, size = 3) => {
const length = Math.round(arr.length / size)
 return arr.reduce((p) => {
    p.push(arr.splice(0, length))
    return p
  }, [])
}

const a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,13,14]


console.log(chunks1(a)) // тот что спереди, переписывает последующий массив => []
console.log(chunks(a), chunks1(a))