С помощью следующего кода я перебираю массив цветов (favorites
), создавая прямоугольники для jsPDF
документа.
После 5 итераций я хочу сбросить x
Переменная обратно startX
, а затем добавить 1,875 с каждой итерации.Аналогично для следующих 5 итераций: сбросьте x
на startX
, добавив 1,875 до 10, затем снова до 15.
Мне просто не повезло, сбрасывая x
в этих условных выражениях.Я уверен, что это что-то очевидное, но что я здесь упускаю?
Или я должен структурировать цикл по-другому?
Что я пытаюсь сделать, это создать до 3 строкиз 5 прямоугольников.Как только я нажму 5, начнем новую строку, отсюда и сброс x
, который является координатой местоположения страницы.
let startX = 1
let startY = 1
let secondY = 4
let thirdY = 6.5
let n = favorites.length
for (let i = 0, x = startX, y = startY; i < n; x += 1.875, i++) {
if (i < 5) {
doc.setFillColor(favorites[i].h)
doc.rect(x, y, 1.5, 1, 'F')
doc.text(favorites[i].h.toString(), x, y + 1.5)
} else if (i >= 5 && i < 10) {
x = 1 // resets but then doesn't increment
y = secondY
doc.setFillColor(favorites[i].h)
doc.rect(x, y, 1.5, 1, 'F')
doc.text(favorites[i].h.toString(), x, y + 1.5)
} else if (i >= 10 && i < 15) {
x = 1 // resets but then doesn't increment
y = thirdY
doc.setFillColor(favorites[i].h)
doc.rect(x, y, 1.5, 1, 'F')
doc.text(favorites[i].h.toString(), x, y + 1.5)
}
}