Javascript 在一定时间内对一定数量进行随机相加
我需要在JavaScript/jQuery中的一些工作方面的帮助 我想给它一个设定的“目的地”编号,给它一个设定的持续时间,并让它在整个持续时间内以1的间隔随机相加(不是等距,但不是在开始、结束或中间),但在持续时间内达到“目的地”编号就到了 因此,如果我将持续时间设置为20秒,“目的地”数设置为10。它将启动计时器,并随机添加1的间隔(不遵循任何模式),持续时间与添加最后一个数字的时间相同 我真的被这件事缠住了,甚至不知道从哪里开始 任何帮助都将不胜感激,非常感谢 我的方法是:Javascript 在一定时间内对一定数量进行随机相加,javascript,jquery,Javascript,Jquery,我需要在JavaScript/jQuery中的一些工作方面的帮助 我想给它一个设定的“目的地”编号,给它一个设定的持续时间,并让它在整个持续时间内以1的间隔随机相加(不是等距,但不是在开始、结束或中间),但在持续时间内达到“目的地”编号就到了 因此,如果我将持续时间设置为20秒,“目的地”数设置为10。它将启动计时器,并随机添加1的间隔(不遵循任何模式),持续时间与添加最后一个数字的时间相同 我真的被这件事缠住了,甚至不知道从哪里开始 任何帮助都将不胜感激,非常感谢 我的方法是: 将持续时间分成
window.setTimeout
,设置所有延迟。给它一个函数,使当前值增加1var start = parseInt($("#inStart").val(), 10),
end = parseInt($("#inEnd").val(), 10),
duration = parseInt($("#inDuration").val(), 10),
difference = end - start,
current = start - 1,
step = duration * 1000 / difference,
delays = [],
index, amount,
increment = function () {
current += 1;
$("#outCurrent").text(current);
};
// calculate equal delays
for (index = 0; index <= difference; index++) {
delays.push(step * index);
}
// randomize delays, without changing the sum
for (index = 1; index < delays.length - 2; index++) {
amount = (Math.random() - 0.5) * step;
delays[index] -= amount;
delays[index+1] += amount;
}
// schedule the increment calls
for (index = 0; index < delays.length; index++) {
window.setTimeout(increment, delays[index]);
}
var start=parseInt($(“#inStart”).val(),10),
end=parseInt($(“#inEnd”).val(),10),
持续时间=parseInt($(“#硬化”).val(),10),
差异=结束-开始,
电流=启动-1,
步长=持续时间*1000/差,
延迟=[],
指数,数量,,
增量=函数(){
电流+=1;
$(“#流出”)。文本(当前);
};
//计算相等的延迟
对于(index=0;显示一些代码的索引会有所帮助。一些响应会很好。