【发布时间】:2019-10-16 02:24:13
【问题描述】:
我正在使用https://github.com/carhartl/jquery-cookie 设置 cookie,现在我需要在一个 cookie 中设置多个值(数组),然后才能检查这些值是否等于另一个值。
假设我用这个设置了一个 cookie:
var date = new Date();
var minutes = 60;
date.setTime(date.getTime() + (minutes * 60 * 1000));
$.cookie('amnotiser', '111', { expires: date });
然后我想检查cookie是否有值,例如我想检查cookie是否有值222,如果没有,则添加它而不删除现有值。如果它已经有 222 的值,那么什么也不做。
var amnotiser = $.cookie('amnotiser');
if(amnotiser===222){
//do nothing...
}else{
add the value to the cookie...
}
好的,我可以用这个添加一个值:
var amnotiser = $.cookie('amnotiser');
var newvalue = "222";
thearray = new Array();
thearray.push(amnotiser+","+newvalue);
console.log(thearray)
$.cookie('amnotiser', thearray);
这增加了 222,所以它看起来像这样:["111,222"] 好!
那么我现在如何循环遍历数组以查看它是否具有特定值?
感谢任何意见。
【问题讨论】:
-
所以你希望值为
['111', 'somethingelse']? -
我希望值变成 ['111','222'] 等等,这样我就可以向现有 cookie 添加多个值。
-
那我建议把初始值改成
['111'],当你需要添加更多时,你只需将值推送到数组中,然后将其设置回cookie上 -
好的,谢谢,但我用这个测试过: $.cookie('amnotiser', '["111"]'); var amnotiser = $.cookie('amnotiser'); console.log(amnotiser) amnotiser.push('222') var amnotiser = $.cookie('amnotiser'); console.log(amnotiser) 但我收到一条错误消息“amnotiser.push 不是函数。”
-
我会假设 cookie 中的值是一个字符串。您可能必须在设置值时对其进行字符串化,并在检索时对其进行解析