如何在循环中增加setInterval定时器

How to increase setInterval timer in loop

我这里有一个倒计时脚本。

1秒后数字递减。我想要创建的是一个循环,它在减少数字时增加 setInterval 的时间。

例如它显示 1 秒后剩余 9 个副本,然后大约 5 秒后剩余 8 个副本,然后 15 秒后剩余 7 个副本,依此类推,直到达到一个。

var count=10;
var counter=setInterval(timer, 1000);

function timer()
{  
  count=count-1;
  if (count <= 0)
  {
     clearInterval(counter);
     //counter ended, do something here
     return;
  }

  document.getElementById("timer").innerHTML="Only " + count + " copies left! Hurry up!";
}

这是我的代码:jsfiddle

我确定有一种更简洁的方法可以做到这一点,但这段代码可以实现你想要做的事情(在底部更新 fiddle link):

var count = 10;
var interval = 1000;
iterator();

function iterator() {
  document.getElementById("timer").innerHTML="Only " + count + " copies left! Hurry up!";
  document.getElementById("interval").innerHTML="Timeout Interval: " + interval + "ms";
  count -= 1;
  interval += 1000;
  if(count>0) {
    setTimeout(iterator, interval);
  }
}
<p id="timer"></p>
<p id="interval"></p>

Updated Fiddle