jquery / javascript中的逻辑运算符

时间:2015-08-13 19:19:36

标签: javascript jquery

这里我尝试根据数字做不同的事情。现在如果条件逻辑运算符不能按我的意愿工作。 我的代码出了什么问题?

我有计数器变量作为计数器,每次调用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

1 个答案:

答案 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)) {