我正在尝试使用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();

09-06 18:04