如果我有这样的话:
var x = 1;
setInterval(function(){
if (x == "1") {x = "2"};
if (x == "2") {x = "3"};
if (x == "3") {x = "1"};
}, 250);
目前,该函数运行第一个if
,因为它继承为true,然后由于第一个if
改变x
以满足第二个if
的条件,它也会运行,然后对第三个执行相同的操作,并将x
一直设置回1
如何让每个if
函数突破setInterval
{1}}功能,以便在运行后,其他if
不会运行?我已经找到了如何用循环而不是函数来做到这一点。我知道上面的函数可能更适合循环,但它只是为了保持问题简短的一个例子。
答案 0 :(得分:0)
对这个简单的案例使用三元表达式:
var x = 1;
var interval = setInterval(function() {
x < 3 ? x++ : x=1
console.log(x)
}, 250);
// clears the interval after 5000 ms
setTimeout(function() {
clearInterval(interval)
}, 5000);
&#13;