当多个变量包括

时间:2018-02-18 12:08:25

标签: javascript jquery

我正在整理一些代码,这些代码在设置自己的cookie之前会查看名为'region'的cookie的值:

if(regionvalue.indexOf("foo")>=0){
        Cookies.set('local-council', 1);
}
if(regionvalue.indexOf("foo2")>=0){
        Cookies.set('local-council', 1);
}

在上面的示例中,如果值为'foo'或'foo2',我希望创建相同的'local-council'cookie。

此代码有效,但结构不合理。我想用数组来整理一下:

var multiregion = ['foo1', 'foo2'];
if(regionvalue.indexOf(multiregion)>=0){
        Cookies.set('local-council', 1);
}

不幸的是,上面的数组不起作用。但是,如果只有一个变量,则创建'local-council'cookie。指定'foo1'。

看起来没有任何语法错误,浏览器的控制台没有显示任何问题。我很困惑为什么这不起作用。

2 个答案:

答案 0 :(得分:1)

只需更改订单

var multiregion = ['foo1', 'foo2'];
if(multiregion.indexOf(regionvalue) >= 0){
    Cookies.set('local-council', 1);
}

或使用es6 includes()

var multiregion = ['foo1', 'foo2'];
if(multiregion.includes(regionvalue)){
    Cookies.set('local-council', 1);
}

答案 1 :(得分:0)

使用Array.prototype.some



const multiregion = ['foo1', 'foo2'];
const regionvalue = 'foo1';
if(multiregion.some(i => regionvalue.indexOf(i) >= 0)){
        document.write('works');
}