Итерация javascript объекта с разбивкой на группы по N элементов? Есть объект-коллекция с другими объектами, содержащие в себе данные нескольких страниц.
Нужно вывести данные этих страниц списком, но с разбивкой по 16 элементов.
Использую DocPad и Jade как шаблонизатор.
Код имеет такой вид:- var projects = getCollection('projects').toJSON()
- var count = projects.length
- var pages = Math.ceil(count / 16)
.entry-list
each project in projects
- for ( var page = 1; page 0)
.hentry
a(href=project.url).entry-link
h3= project.title
- else
.hentry.emty
Недостающие элементы выводятся пустыми (.empty).
Естественно первый for отрабатывает полностью на каждый project, что ведет к совсем не тем результатам.
А получить хочется что-то вроде этого:.entry-list
.entry-list-page.page1
.hentry
a(href="page1.html").entry-link
h3= title1
.hentry
a(href="page2.html").entry-link
h3= title2
...
.hentry
a(href="page16.html").entry-link
h3= title16

.entry-list-page.page2
.hentry
a(href="page17.html").entry-link
h3= title17
.hentry
a(href="page18.html").entry-link
h3= title18
...
.hentry
a(href="page30.html").entry-link
h3= title30
.hentry.emty
.hentry.emty
Буду признателен за помощь, моих знаний здесь не хватает.
UPD. Для меня решение нашлось таким:- var projects = getCollection('projects').toJSON()
- var count = projects.length
- var ppage = 16
- var pages = Math.ceil(count / ppage)
.entry-list
- for ( var cpage = 1; cpage <= pages; cpage++ )
- var projectsPage = projects.splice(0,ppage) // вырезаем первые 16 элементов
.entry-list-page
each project in projectsPage // Итерируем вырезанные элементы
.hentry
a(href=project.url).entry-link
h3= project.title
- var ecount = ppage - projectsPage.length // Если элементов оказалось меньше нужного,
- for ( var i = 0; i < ecount; i++ ) // заполняем нехватку
.hentry.empt // пустыми блоками

21 Авг 2019 в 07:09
166 +1
0
Ответы
Нет ответов
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 038 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир