gpt4 book ai didi

javascript - 将间隔时间更改为随机?

转载 作者:行者123 更新时间:2023-11-30 16:47:46 26 4
gpt4 key购买 nike

我正在寻找一种方法来改变我的 javascript 数字计数器的工作方式。现在它只是每秒计数,但我希望它在 1 秒到 15 秒之间的随机时间计数。

function startCount(){
timer = setInterval (count, 1000);
}

function count(){
var el = document.getElementById('counter');
var currentNumber = parseFloat(removeCommas(el.innerHTML));
el.innerHTML = addCommas(currentNumber+1);
}

function addCommas(nStr){
nStr += '';
x = nStr.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;

while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}

return x1 + x2 + '.00';
}

function removeCommas(aNum){
//remove any commas
aNum=aNum.replace(/,/g,"");

//remove any spaces
aNum=aNum.replace(/\s/g,"");

return aNum;
}

谁能帮我把计数时间改成随机数?

最佳答案

假设间隔在 1 到 15 秒之间,并在每个间隔后更改。 setIntervsal() 不适合。 setTimeout() 在这里是一个不错的选择,因为只有一个等待间隔。每个下一个间隔都有一个新的等待时间,必须再次调用。随机等待时间是通过 Math.random() 实现的,该函数返回 0 到 1 之间的 float 。使用一个因子并强制为整数和 1000 毫秒的填充,我们得到了想要的间隔。

(对前一个解决方案的一句话:首先,我认为只需要一个固定的随机间隔就可以了,但问题来了,要求什么样的间隔。)

function startCount() {
setTimeout(count, 1000 + Math.random() * 14000 | 0);
}
function count() {
var el = document.getElementById('counter');
var currentNumber = parseFloat(removeCommas(el.innerHTML));
el.innerHTML = addCommas(currentNumber + 1);
startCount();
}

关于javascript - 将间隔时间更改为随机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30975465/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com