如何将javascript计数器停止在特定的数字

如何将javascript计数器停止在特定的数字,javascript,tampermonkey,Javascript,Tampermonkey,我有一个在Amazon上运行的tampermonkey的javascript代码。它所做的只是计算你的礼品卡余额,让它看起来像我在赚钱。我想知道是否有可能让它停在一个特定的号码 var oof = document.getElementById("gc-ui-balance-gc-balance-value"); var lastCount = localStorage.getItem("lastCount"); oof.innerText = '$' + lastCount || "$10

我有一个在Amazon上运行的tampermonkey的javascript代码。它所做的只是计算你的礼品卡余额,让它看起来像我在赚钱。我想知道是否有可能让它停在一个特定的号码

var oof = document.getElementById("gc-ui-balance-gc-balance-value");

var lastCount = localStorage.getItem("lastCount");

oof.innerText = '$' + lastCount || "$10000";

function animateValue(id) {
    var obj = document.getElementById(id);
    var current = parseInt(localStorage.getItem("lastCount")) || 10000;

    setInterval(function () {
        var nextCount = current++;
        localStorage.setItem("lastCount", nextCount);
        obj.innerText = '$' + nextCount;
    }, 0.1);
}

animateValue('gc-ui-balance-gc-balance-value') 

当前值
达到如下特定值时,可以清除间隔

function animateValue(id) {
  // rest of the code
  let interval = setInterval(function() {
    var nextCount = current++;
    localStorage.setItem("lastCount", nextCount);
    obj.innerText = '$' + nextCount;
  }, 0.1);

  if (current === requiredVal) {
    clearInterval(interval)
  }
  return current;
}
在setInterval回调中使用,这样每次调用回调时,都可以检查新计数是否达到阈值,如果达到阈值,则清除计时器

如果检查回调之外的值,则不会在每次计数增量时调用逻辑

function animateValue(id) {
    var obj = document.getElementById(id);
    var current = parseInt(localStorage.getItem("lastCount")) || 10000;

    var interval = null;
    var maxCount = 1000;
    var callback = function() {
        var nextCount = current++;
        if (nextCount === maxCount) {
            clearInterval(interval);
        }
        localStorage.setItem("lastCount", nextCount);
        obj.innerText = '$' + nextCount;
    }
    interval = setInterval(callback, 0.1);
}
下面是一个演示:

let current=0;
设区间=null;
常量回调=()=>{
设nextCount=current++;
console.log(nextCount);
如果(下一个计数===5){
间隔时间;
}
}

间隔=设置间隔(回调,100)
setInteval
返回一个唯一的ID,您可以使用
clearInterval()清除该ID只要记住它,如果计数器达到你需要的高度,就调用它be@Jmuse.v2,我用一个常规函数替换了arrow函数,用var替换了let/const,它现在可以工作了吗?你能试着让它与我的代码或其他东西一起工作吗?因为我不知道把它放在哪里。此外,maxCount不是defined@Jmuse.v2,是的,你必须定义maxCount,这只是一个例子,我已经将它集成到你的animateValue函数中了。当我从你那里得到新代码时,我刚刚在底部添加了“animateValue('gc-ui-balance-gc-balance-value'),它开始工作了!非常感谢!