我正在尝试使用计时器递增和递减数字,我的代码不起作用...
var i = 0,
max = 5,
timer = function() {
if (i<max) {
i++;
console.log(i) //ok
}
if (i==max) {
i--;
console.log(i) //fail ...
}
setTimeout(timer, 60);
};
timer();
答案 0 :(得分:4)
当它变为5时,第二个if语句使它变为4,然后第一个if语句将其返回到5。
var i = 0,
max = 5,
dir = 0; // 0 for up, 1 for down.
timer = function() {
if (dir == 0) {
i++;
console.log(i)
}
if (dir == 1) {
i--;
console.log(i)
}
if(i == 0) {
dir = 0;
} else if(i == max) {
dir = 1;
}
setTimeout(timer, 60);
}
timer();
我使用方向变量来跟踪它的计数方式。
答案 1 :(得分:1)
@sachleens的想法,更短的代码
var i = 0, max = 5, cnt = 1;
timer = function() {
i += cnt;
if (i>=max) {cnt = -1;}
if (i===0) {cnt = 1;}
console.log(i);
setTimeout(timer,60);
}
timer();