【问题标题】:Javascript - display incrementing number every secondJavascript - 每秒显示递增的数字
【发布时间】:2014-10-09 05:40:31
【问题描述】:

我正在尝试做一些事情,我每秒显示一个不同的递增数字,但我就是无法正确设置 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 次,然后重复。

感谢大家的帮助。

迈克

【问题讨论】:

    标签: javascript


    【解决方案1】:

    当您创建一次 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
    
    counter()

    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
    

    【讨论】:

    • 感谢 Epsilon(以及所有相关人员)的所有帮助。像魅力一样工作。我喜欢堆栈交换!
    • 好吧,看来我又回来了。使用此功能时,它会等到第一个间隔过去后才运行。因此,使用 1000 的演示脚本会等待 1 秒。对于我想要做的事情,我必须将间隔设置为 7000,因此它等待 7 秒才能运行。有没有办法在那之后每隔 7 秒立即运行一次?谢谢
    • @mdumka 见Update 1
    【解决方案2】:
    var iter = 0;
    function counter() {
        console.log('show at ' + (iter++));
        setTimeout(counter, 1000);
    }
    
    counter();
    

    【讨论】:

      【解决方案3】:
          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/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-13
        • 1970-01-01
        • 2022-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多