Как получать каждые 12 элементов из массива?

Для получения каждых 12 элементов из массива в JavaScript можно использовать различные подходы. Рассмотрим несколько способов.

1. Используя цикл for:

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]; // Исходный массив
const chunkSize = 12; // Размер каждого блока

const result = [];
for (let i = 0; i < array.length; i += chunkSize) {
  const chunk = array.slice(i, i + chunkSize); // Отрезаем кусок из исходного массива
  result.push(chunk); // Добавляем полученный кусок в новый массив
}

console.log(result); // [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18, 19, 20]]

2. Используя метод reduce:

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]; // Исходный массив
const chunkSize = 12; // Размер каждого блока

const result = array.reduce((acc, val, index) => {
  const chunkIndex = Math.floor(index / chunkSize); // Определяем индекс текущего блока
  if (!acc[chunkIndex]) {
    acc[chunkIndex] = []; // Создаем новый блок в новом массиве
  }
  acc[chunkIndex].push(val); // Добавляем элемент в текущий блок
  return acc;
}, []);

console.log(result); // [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18, 19, 20]]

3. Используя функциональный стиль программирования и методы map и filter:

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]; // Исходный массив
const chunkSize = 12; // Размер каждого блока

const result = Array.from({ length: Math.ceil(array.length / chunkSize) }, (val, index) =>
  array.slice(index * chunkSize, index * chunkSize + chunkSize)
);

console.log(result); // [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18, 19, 20]]

Все эти подходы разбивают исходный массив на блоки заданного размера и сохраняют эти блоки в новый массив. Результатом будет двумерный массив, где каждый подмассив содержит по 12 элементов (кроме последнего подмассива, который может содержать меньше элементов в случае, если исходный массив не делится нацело на 12). При выполнении этих примеров исходный массив [1, 2, 3, ..., 20] разбивается на два блока: [1, 2, 3, ..., 12] и [13, 14, 15, ..., 20].