Javascript - 每秒显示递增的数字

时间:2014-10-09 05:40:31

标签: javascript

我正在尝试做一些事情,我每秒都会显示不同的递增数字,但我无法正确设置setInterval。

这就是我所拥有的

function counter() {

    var i = 0;
    while ( i < 100 ) {
        // This block will be executed 100 times.
        setInterval(console.log( 'Currently at ' + i ), 1000);
        i++; // Increment i
    }

} // End

但我得到的是console.log开了100次,然后重复。

感谢您的帮助。

麦克

3 个答案:

答案 0 :(得分:5)

当你创建一次setInterval时,它会每隔1000毫秒(第二个参数)自动调用函数(第一个参数)。所以你不需要在里面做,只需在函数(第一个参数)中增加i

function counter() {
    var i = 0;
    // This block will be executed 100 times.
    setInterval(function(){
        if (i == 100) clearInterval(this);
        else console.log( 'Currently at ' + (i++) );
    }, 1000);
} // End

setInterval

更新1

function counter() {
    var i = 0;
    var funcNameHere = function(){
        if (i == 100) clearInterval(this);
        else console.log( 'Currently at ' + (i++) );
    };
    // This block will be executed 100 times.
    setInterval(funcNameHere, 7000);
    funcNameHere();
} // End

答案 1 :(得分:1)

var iter = 0;
function counter() {
    console.log('show at ' + (iter++));
    setTimeout(counter, 1000);
}

counter();

答案 2 :(得分:0)

    var i=0;
    var timer;
    function increement() {
     if(i<100) {

      console.log( 'Currently at ' + i )
     } else {
      clearInterval(timer);
     }
    i++;
    }

   timer = setInterval(function() {increement()}, 1000);

http://jsfiddle.net/pfq7a5n3/