Переменная счетчика JavaScript колеблется между двумя значениями

Я пытаюсь непрерывно колебать переменную «z» на 0,1 между двумя диапазонами 0 и 2. Когда он достигает максимального значения 2, я хочу, чтобы переменная «z» уменьшалась. И когда он достигает минимального значения 0, я хочу, чтобы переменная «z» увеличивалась. Пока что весь мой код возвращает число 1.

ПРИМЕЧАНИЕ: я также использую это на холсте-скетче на github.com/mattdesl.

1 ответ

Решение

Попробуй это:

      let z = 1;
let increment = 0.1

setInterval(function(){
  if(z === 2) increment = -0.1;
  if(z === 0) increment = 0.1;
  z = Math.round((z + increment) * 10) / 10;

  console.log(z);
}, 1000);

Линия z здесь очень важна. Попробуйте это как просто z + = increment, и вы получите ошибки округления JS. Поэтому нам просто нужно убедиться, что мы очистили число до одного десятичного знака после его добавления.

Другие вопросы по тегам