如何计算var并重新计算javascript

时间:2015-04-18 09:37:44

标签: javascript

我有一个var,我试图让它的值数到100.当它达到100时,它应该重新计数到0.这是我的实验代码。

var min = 0 - 1,
max = 100 + 1, 
now = 0;
var timer = setInterval(function(){
    if(now <= max){
        now++;
        console.log(now);
    }else if ( now >= min){
        now--;
        console.log(now);
    }
},500);

代码一直有效,直到它计数到100,但它不会将其计数回到0,并一遍又一遍地重复相同的过程。

任何人都可以告诉我我做错了什么,或者我做错了。你能解释我应该用的方法吗?

3 个答案:

答案 0 :(得分:3)

使用变量step = +1;,一旦达到最大值,该变量将更改为step = -1;

var min = 0,
    max = 100,
    step = +1,
    now = 0; 

var timer = setInterval(function(){
    if(now >= max) {step = -1;}
    if(now <= min) {step = +1;}
    now += step;
    console.log(now);
}, 20);

答案 1 :(得分:1)

请试试这个:

var count = 'up';
var min = 0 - 1,
max = 100 + 1, 
now = 0;
var timer = setInterval(function(){
    if(count === 'up'){
        if(now <= max){
           now++;
        }
        else{
           count = 'down';
           now--;
        }
    }
    else{
       if(now >= min){
           now--;
        }
        else{
           count = 'up';
           now++;
        }
    }
    console.log('now: ' + now);
},500);

尝试此演示(计算到10以减少执行时间)

DEMO

答案 2 :(得分:0)

想想你在做什么。当计数达到101时,它不会计数,因为if语句为false。所以你减少回到100.但是在下一个循环中,第一个if语句再次为真,你就增加了。

您可以在第一次减少时设置一个标志,并将标志添加到第一个if条件中,这意味着,一旦设置了标志,您再也不会增加该值。