我正在尝试使用Math.random()生成随机数,这些数字以随机间隔记录/写入。
我写了以下内容:
function ranNum () {
setInterval( function () {
var myNum = Math.round(Math.random()*100000);
document.write(myNum+' ');
return myNum;
}, ranNum)
}
ranNum();
但是间隔不是随机的,实际上它们似乎是null或零,因为打印了无数个数字...我想不可能调用ranNum函数的新实例,因此setInterval的第二个参数为0或总是一样..
有人告诉我递归将是此处的解决方案,但无法实现。
最佳答案
正如monkeyinsight指出的那样,请使用setTimeout
:
function ranNum () {
setTimeout( function () {
var myNum = Math.round(Math.random()*100000);
document.write(myNum+' ');
ranNum(); //This makes the function call `recursive` (in a broad sense)
return myNum;
}, Math.round(Math.random()*10000) // The function in the setTimeout will be called in 0-10000ms
);
}
ranNum();