我需要将新变量添加到数组中,该数组存储在cookie中。我怎么能这样做?
var arr = $.cookie("arr",[1, 2, 3, 4, 5, 6, 7, 8, 9]);
// this is an array of diferent numbers
function pri() { // this function create a number that is not in the array
var n = Math.floor((Math.random() * 15));
var tex;
while ((tex = $.inArray(n, arr)) != -1) {
n = Math.floor((Math.random() * 15));
}
return n;} //i need for whatever "n" is to be added to my array cookie
答案 0 :(得分:1)
$ .cookie插件会将数组保存为字符串,并且:
var arr = $.cookie("arr",[1, 2, 3, 4, 5, 6, 7, 8, 9]);
返回请求,例如:
arr=1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9
你必须首先保存数组,然后将字符串返回并再次拆分,然后你可以推送它:
$.cookie("arr",[1, 2, 3, 4, 5, 6, 7, 8, 9]); // set the cookie
var arr = $.cookie("arr").split(','); // get the string and split it
arr.push(pri()); // then add whatever the function returns
现在您可以将修改后的数组保存回cookie
$.cookie("arr", arr);
答案 1 :(得分:0)
cookie中的值只能是字符串,因此请使用(非)序列化程序。
JSON在JavaScript中运行良好:
$.cookie("key", JSON.stringify([ 1, 2, 3]);
用法:
function add_value(new_value) {
var value = JSON.parse($.cookie("key")); // unserialize
value.push(new_value); // modify
$.cookie("key", JSON.stringify(value)); // serialize
}