Вопрос
Имеется массив JavaScript, который выглядит следующим образом:
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
Какой подход можно применить для разбиения массива на множество меньших массивов, скажем, с 4 элементами максимум?
Ответ
Метод array.slice может извлечь фрагмент из начала, середины или конца массива для любых целей, без каких-либо изменений исходного массива. Например:
function array_chunks(array, chunk_size) {
let a = Array(Math.ceil(array.length / chunk_size)).fill();
a = a.map((_, index) => index * chunk_size)
return a.map(begin => array.slice(begin, begin + chunk_size));
}
const a = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(array_chunks(a, 4)) // [[1, 2, 3, 4], [5, 6, 7, 8], [9]]