我需要在 5 秒内将值从 0 增加到 103551。以下是我使用的逻辑。但它不会在 5 秒内增加到所需的值
var counter = 0;
var el = document.getElementById('seconds-counter');
function incrementSeconds() {
counter += 1;
el.innerText = "Processing " + counter + " execution records";
if(counter == 103551) {
console.log(new Date());
}
}
console.log(new Date());
var time = 103551/5000;
var cancel = setInterval(incrementSeconds, time);
HTML
<div id='seconds-counter'> </div>
最佳答案
你的数学有点不对劲。 103551/5000 = 20.7102 毫秒
1000 毫秒 = 1 秒,5 秒 = 5000 毫秒,5000/20.7102 = 240 次迭代。
你要解的方程是 5000/x = numIterations
所以 x = 5000/numIterations
注意:大多数浏览器都有一个您可以在 setInterval() 中设置的最小数字,因此您可能需要在每个循环中递增 1 个以上才能在 5 秒内计数到 103551。由于这是一个奇怪的特定问题,我将猜测这可能是一项任务,因此将从该答案中省略完整的解决方案。祝你好运!
关于javascript - 在 5 秒内从 0 增加到一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51288610/