Для рабочего проекта мне нужно было включить форму мастера с двумя вопросами на каждой странице. Чтобы получить общее количество страниц, я разделил общее количество вопросов на 2, а затем округлил до ближайшего целого числа. Однако были некоторые проблемы с этой реализацией, и требовалось более эффективное решение.

Мой технический руководитель указал на использование фрагментации массива. Вот как это работает:

Выше мы определяем функцию с именем Chunk, которая принимает 2 параметра: исходный массив и размер фрагмента.

Затем мы определяем временный массив с именем tempArray и пусть это будет пустой массив.

Впоследствии мы используем метод Array.slice() в цикле for. Метод slice() возвращает неглубокую копию части массива в новый объект массива, выбранный от begin до end (end не входит). Исходный массив не будет изменен.

Пример:

var animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals.slice(2));
// expected output: Array ["camel", "duck", "elephant"]
console.log(animals.slice(2, 4));
// expected output: Array ["camel", "duck"]

Затем мы помещаем каждый фрагмент в наш tempArray (изначально пустой массив), чтобы получить новый массив желаемого результата.

Теперь мы можем считать каждый элемент в массиве отдельными страницами для нашей формы мастера. Это определенно более элегантный способ реализации логики разбиения по страницам для многоэтапных форм мастера.

Ваше здоровье!