@grande2k

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

6503296a8c4b3334226566.png
Есть массив с треками, и есть слайдер, каждый слайд может содержать максимум 12 элементов (треков), если их больше то добавляется новый слайд и туда помещаются остальные треки.

trackListsNumber = Math.ceil(tracks.length / 12);

Нужное количество слайдов я могу вычислить, нужно что их всех заполнить треками.

Условно если количество треков 34, то получается 2 слайда по 12 треков, и третий слайд который содержит оставшиеся 10 треков

65032c104bb6b019727248.png

Как это примерно должно выглядеть (на скрине опечатка пропустили 12, не обращайте внимания)
  • Вопрос задан
  • 225 просмотров
Решения вопроса 3
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
Вот так: Array.prototype.slice()
Ответ написан
Комментировать
@GeKskill
Просто поделите массив на чанки:
let array = [1,2,3,4,5,6,7,8,9,10,11]
const chunkSize = 3;
let chunks = [];

for (let i = 0; i < array.length; i += chunkSize) {
     chunks.push( array.slice(i, i + chunkSize) );
}

// на выходе
[ 
[1, 2, 3], 
[4, 5, 6],
[7, 8, 9], 
[10, 11]
]


Ну или в бэкенде сразу разбивайте, смотря как шаблон выводите.
Ответ написан
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
let array = [1,2,3,4,5,6,7,8,9,10,11]
const chunkSize = 3;
let chunks = [];

while (array.length > 0) {
  chunks.push( array.splice(0, chunkSize) );
}

console.log(chunks);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы