回到课程

每秒输出一次

重要程度: 5

编写一个函数 printNumbers(from, to),使其每秒输出一个数字,数字在 fromto 范围内。

使用以下两种方法来实现。

  1. 使用 setInterval
  2. 使用递归 setTimeout

使用 setInterval

function printNumbers(from, to) {
  let current = from;

  let timerId = setInterval(function() {
    alert(current);
    if (current == to) {
      clearInterval(timerId);
    }
    current++;
  }, 1000);
}

// 用例:
printNumbers(5, 10);

使用递归 setTimeout

function printNumbers(from, to) {
  let current = from;

  setTimeout(function go() {
    alert(current);
    if (current < to) {
      setTimeout(go, 1000);
    }
    current++;
  }, 1000);
}

// 用例:
printNumbers(5, 10);

这两种解法在首次输出时都有一个初始的延时,需要的话可以加一行让其立即输出,这并不难。