дату с которой начинаются тренировка, массив дней недели и массив самих тренировок
в блоке for (let day of weekdays) условие раньше срабатывало иначе и даты назначались корректно, например если сегодня понедельник и переданный массив [1, 3, 5], то дата назналась с понедельника и следующее занятие среда, затем пятница
но теперь тот же код работает иначе, все занятия назначаются на 1 день, в чем может быть ошибка?
function assignWorkoutDates(programStart, weekdays, workouts) {
let currentDate = programStart
for (let workout of workouts) {
if (workout.finished) {
continue
}
let weekday
for (let day of weekdays) {
if (currentDate.isoWeekday() <= day) {
weekday = day
break
}
}
if (!weekdays.includes(weekday)) {
weekday = weekdays[0]
}
console.warn(currentDate.format('DD-MM'))
// Вычисляем дату следующего занятия.
if (currentDate.isoWeekday() <= weekday) {
currentDate = moment(currentDate).isoWeekday(weekday)
} else {
console.log('else')
currentDate = moment(currentDate)
.add(1, 'weeks')
.isoWeekday(weekday)
}
console.log(weekday)
console.error(currentDate.format('DD-MM'))
workout.start = currentDate.format('YYYY-MM-DD')
workout.end = currentDate.format('YYYY-MM-DD')
workout.finished = false
}
return workouts
}
https://jsfiddle.net/25mcpewq/9/
Обсуждают сегодня