用JavaScript生成随机间隔打印的随机数

用JavaScript生成随机间隔打印的随机数,javascript,recursion,random,Javascript,Recursion,Random,我正在尝试使用Math.random()生成随机数,这些随机数以随机间隔记录/写入 我写了以下内容: function ranNum () { setInterval( function () { var myNum = Math.round(Math.random()*100000); document.write(myNum+' '); return myNum; }, ranNum) } ranNum(); 但间隔不是随机的,事实上它们似乎是零或零,因为有无穷的数字

我正在尝试使用Math.random()生成随机数,这些随机数以随机间隔记录/写入

我写了以下内容:

function ranNum () {
  setInterval( function () {
  var myNum = Math.round(Math.random()*100000);
  document.write(myNum+' ');
  return myNum;
  }, ranNum)
}

ranNum();
但间隔不是随机的,事实上它们似乎是零或零,因为有无穷的数字打印。。。我猜不可能调用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();

如果需要随机间隔,请使用重复的
setTimeout
<代码>设置间隔仅在同一间隔重复

function ranNum () {
  schedule();
  function schedule() {
    setTimeout(go, Math.random() * 10000);
  }
  function go() {
    var myNum = Math.round(Math.random()*100000);
    document.write(myNum+' ');
    schedule();
    // No return, it doesn't make any sense to return something from a timer function
  }
}

旁注:您不需要
文档。为此编写
。您的文档将被
文档替换。请在第一次计时器函数调用后写入
。相反,使用现代DOM技术,如
appendChild
insertAdjacentHTML

var计数器=20;
函数ranNum(){
附表();
功能表(){
setTimeout(go,Math.random()*10000);
}
函数go(){
var myNum=Math.round(Math.random()*100000);
显示(myNum+“”);
如果(--counter>0){//对于代码段,请在20之后停止
附表();
}
//不返回,从计时器函数返回内容没有任何意义
}
}
功能显示(msg){
document.body.insertAdjacentHTML(“beforeend”,msg);
}

ranNum()使用
setTimeout
而不是
setInterval
我能随机分配间隔时间吗?谢谢,不用担心文档。写,这不是一个真实的项目,我只是用它来代替控制台。日志:)我选择你的答案是因为它更接近我的代码/递归,即使另一个看起来更可靠。。