Как разбить массив на куски?

Вопрос

Имеется массив 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]]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *