Я думаю, что приведенный ниже код не должен приводить к бесконечному циклу, но добавление не работает, как я ожидаю. Есть несколько примеров в SO и других местах, но ни один из них не помог.
const minDate = Moment().subtract(3, 'month');
const maxDate = Moment().add(3, 'month');
let iterDate = minDate.clone();
do {
iterDate.add(1, 'days');
} while (maxDate.isAfter(iterDate));