javascript - 检查cookie值是否在数组中

时间:2012-04-16 16:50:51

标签: javascript arrays cookies

我现在正在学习javascript,所以这可能是一个非常新的问题!我用谷歌搜索了,但没有找到我想要的东西,也许我只是没有用Google搜索正确的东西,但是是啊...我没有使用任何插件来制作饼干。

我有一个名为“country”的cookie,该值是用户的国家代码,如美国,加拿大,英国,澳大利亚或FR ... 我想只在国家/地区显示内容块,比如DE,ES,AT,IT或NL。

我正在寻找的逻辑:如果cookie“country”存在且country = =我的数组中的一个国家...

我正在考虑类似......但这显然太简单而且不起作用:)。

var countryArray = new Array["DE", "ES", "AT", "IT", "NL"];

if( $.cookie('country') && $.cookie('country') == countryArray ) { alert("working"); }

2 个答案:

答案 0 :(得分:1)

您可以将indexOf用于新浏览器:

countryArray.indexOf($.cookie('country')) > -1

此外,而不是

 countryArray = new Array["DE", "ES", "AT", "IT", "NL"];

你需要写:

 countryArray = ["DE", "ES", "AT", "IT", "NL"];

更新:对于旧浏览器,请在js中添加此脚本:

 Array.prototype.indexOf = Array.prototype.indexOf || function( value, startIndex ){
     var i = startIndex || 0;
     for(; i < this.length; ++i){
         if( value === this[i] ){
             return i;
         }          
     }
     return -1;
 }

答案 1 :(得分:1)

改为使用关联数组。

var countryArray = [];

countryArray["DE"]=true;
countryArray["ES"]=true;
etc.

if( $.cookie('country') && countryArray[$.cookie('country')] )
 { alert("working"); }

适用于所有浏览器..

相关问题