レッスンに戻る

毎秒を出力する

重要性: 5

from から始まり to で終わる、毎秒の数値を出力する関数 printNumbers(from, to) を書いてください。

解法は2つのバリアントで作ってください。

  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);
}

// usage:
printNumbers(5, 10);

再帰的な setTimeout を使った場合:

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

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

// usage:
printNumbers(5, 10);

両方の解法において、最初の出力前の初期遅延があることに注意してください。最初の出力をすぐにするために行を追加する必要がある場合もありますが、簡単です。