Zeerocss
@Zeerocss

Выполнить функцию, если переменная увеличилась на n?

Как сделать, чтобы функция выполнялась, когда переменная i увеличилась на 10 от предыдущего значения. (1, 3, 9, 10, 20, 25, ...)
  • Вопрос задан
  • 197 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Очевидный и предпочтительный вариант уже предложил уважаемый Rsa97: действовать там, где назначается новое значение переменной.

Если это не вариант, то остаются всякие костыли, все непригодные в каких-то обстоятельствах, но может быть и рабочие в других:
  1. таймером или requestAnimationFrame'ом часто-часто смотреть значение переменной, запоминая предыдущее. Не сработает, когда переменная быстро меняется в цикле, скажем.
  2. создать прокси объекта, в котором переменная – свойство (window, если глобальная), и менять её содержимое не в оригинальном объекте, а в его прокси. Может, даже заменить исходный объект на его прокси (не получится, если window).
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В том месте, где меняете значение переменной, проверяйте, на сколько изменили и вызывайте функцию.
Ваш К.О.
Ответ написан
@WebEagle
1. Необходимо отслеживать изменение переменной, для этого должна быть только одна точка изменения этой переменной. К примеру, функция по изменению этой переменной
2. В этой функции проверять разницу между текущим и новым значением
let i = 0;
function changeI(newValue) {
  let oldI = i; // дополнительная переменная задаётся на случай если someFunc использует i в расчетах
  i = newValue;
  if(i - oldI == 10) {
    someFunc();
  }
}
function someFunc() { console.log('Изменилась на 10');}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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