Javascript数学给出不正确的结果,如何修复?
所以我对Javascript有一个问题,当我执行一个函数时,它给了我错误的数字。基本上我已经设置好了,所以我的“总数”等于“总数”加上“persec”,persec是我希望每秒加到“总数”上的数字。所以,如果“persec”等于4,我希望它每秒钟加4到“Total” 我有一个for循环,它充当我的计时器,点击一个隐藏的按钮,该按钮被设置为获取persec是什么,并将其添加到我的总数中。我的问题是,在persec传递值1之后,它开始错误地添加。例如,如果我将persec设置为2,我的总数将每秒增加4。它应该只增加2。例如,如果persec设置为3,它将每秒增加9。这似乎是把珀尔塞克的平方加到总数上,我不知道为什么 下面是使用Javascript编辑的按钮和文本:Javascript数学给出不正确的结果,如何修复?,javascript,jquery,for-loop,Javascript,Jquery,For Loop,所以我对Javascript有一个问题,当我执行一个函数时,它给了我错误的数字。基本上我已经设置好了,所以我的“总数”等于“总数”加上“persec”,persec是我希望每秒加到“总数”上的数字。所以,如果“persec”等于4,我希望它每秒钟加4到“Total” 我有一个for循环,它充当我的计时器,点击一个隐藏的按钮,该按钮被设置为获取persec是什么,并将其添加到我的总数中。我的问题是,在persec传递值1之后,它开始错误地添加。例如,如果我将persec设置为2,我的总数将每秒增加
<p>Per second: <span id="persec">0</span></p>
<p>Total: <span id="total">0</span></p>
<button id="totalholder" hidden="true"></button>
我只是不小心把它修好了 我所要做的就是将for循环更改为:
for (var i = 0; i < persec; i = i + persec)
for(变量i=0;i
我不知道为什么会这样做,我以前用过另一种方式 清除计时器功能中的循环:
totalCount = setInterval(function() {
var persec = parseInt($("#persec").text(), 10);
if (persec > 0) {
$("#totalholder").click();
}
}, 1000);
在原始代码中,单击处理程序将总数增加
persec
,而for
循环正是这样做的persec
次,这将使其平方。因为您不想重复多次,所以不需要循环 persec
是totalHolder
函数中的局部变量。为什么您的interval函数要使用它?无法访问persec,因为它的作用域仅在totalHolder
方法中。问题是您正在循环persec
次,并且单击处理程序每次都将persec
添加到总数中。这就是persec乘以persec,你的新循环只运行一次。为什么你需要一个循环?是的,我做循环的方式很混乱,因为我到处寻找,却找不到如何在单个函数中实现我想要的。我想到了让for循环单击一个隐藏的按钮,其中包含我的jquery数学。@Barmar它没有运行一次,在我上面的代码中它每秒钟运行一次。for()
循环只迭代一次,因为您的新增量。看起来您在var parsec=
行中缺少了一些内容
for (var i = 0; i < persec; i = i + persec)
totalCount = setInterval(function() {
var persec = parseInt($("#persec").text(), 10);
if (persec > 0) {
$("#totalholder").click();
}
}, 1000);