@MRcracker

Как правильно задать счетчик?

Есть небольшая функция, которая должна увеличивать число и когда число будет 1557, то увеличение должно прекратиться.

Подскажите, где я ошибся тк у меня происходит бесконечное увеличение.

document.addEventListener("DOMContentLoaded", () => {
  const time = 4000;
  const step = 100;

const outNum = (num, elem) => {
    let l = document.querySelector('#' + elem);
    n = 0;
    let time = Math.round(time/(num/step));
    let interval = setInterval(() =>{
      n = n + step;
      if (n == num) {
        clearInterval(interval);
      }
      l.innerHTML = n;
    }, time)
  }
  outNum(1557, 'out-1');
})
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
@goshaLoonny
У вас шаг 100. 1557 на 100 не делится, а значит условие никогда не будет выполнено, по этому и происходит бесконечное увеличение. К тому же на сколько я вижу это бесконечная рекурсия, условия для выхода из рекурсии нет. Измените
if (n == num) {
  clearInterval(interval);
}
l.innerHTML = n;
на
if (n >= num) {
  clearInterval(interval);
  l.innerHTML = num;
  return;
}
l.innerHTML = n;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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