这里我尝试根据数字做不同的事情。现在如果条件与逻辑运算符不能按我的意愿工作。 我的代码出了什么问题?
我有计数器变量作为计数器,每次调用startSlider()函数时都会递增,如果大于15,则复位为0(零)。
我想要做的是检查计数器变量是否等于多个if条件下的一堆值。
示例:检查计数器是否等于1,2,3,4等等。
我遇到的问题是,计数器变量不会与右边的每个条件进行比较。
$(document).ready(function(){
var foo = {
interval : 0,
counter : 1,
pause : 1000
};
function startSlider(){
foo.interval = setInterval(function(){
if(foo.counter>15){
foo.counter = 1;
}
console.log(foo.counter);
if(foo.counter === (1 || 7 || 9) ) {
console.log('down');
}else if(foo.counter === (2 || 3 || 4 || 11 || 10) ) {
console.log('left');
}else if(foo.counter === (5 || 6 || 13 || 14 || 15) ) {
console.log('right');
}else {
console.log('up');
}
foo.counter++;
},foo.pause);
}
startSlider();
});
此处jsfiddle
答案 0 :(得分:2)
如果不将多个数字与变量进行比较,则不能使用多个数字。
if (foo.counter === (1 || 7 || 9) ) {
应该是:
if (foo.counter === 1 || foo.counter === 7 || foo.counter === 9) {
你也可以将它缩短为这样的东西:
if (~[1, 7, 9].indexOf(foo.counter)) {