jQuery:更新cookie中的数组

时间:2013-03-05 23:07:25

标签: javascript jquery json cookies

array - 多维数组:

array[0] = [["1","2","3"],["1","2","3"],["1","2","3"]];

我需要将此数组放入cookie($.cookie('myCookie', JSON.stringify(array))

现在是有趣的部分:

我需要维护myCookie并在其中添加新数据。

如果新生成的array有任何新数据(元素),我需要从数组中提取新元素并将它们添加到myCookie

最优雅的方法是什么?

4 个答案:

答案 0 :(得分:0)

最优雅的方法是以与您首先设置相同的方式执行此操作 - 使用新的数组值覆盖您的Cookie ...

答案 1 :(得分:0)

以下是步骤格式:

  1. 创建数组的jsonArray的JSON版本。
  2. 以JSON格式下拉cookie
  3. 如果不对其进行反序列化,请将其与jsonArray进行比较。
  4. 如果字符串不相同,请将Cookie设置为jsonArray
  5. 否则,什么都不做。

答案 2 :(得分:0)

哦,我不知道在客户端语言的客户端存储上使用cookie。这真的是让php处理的。

您应该查看localStorage这样的内容,这样会更方便。

localStorage['item'] = "Hello world";
alert(localStorage['item']); // Hello World

localStorage['item'] += "!!!";
alert(localStorage['item']); // Hello World!!!

localStorage['item'] = "Good bye";
alert(localStorage['item']); // good bye

var obj = {0:{text:"Hello"}, 1:{text:"World"}};
localStorage['item'] = JSON.stringify(obj);
JSON.parse(localStorage['item']); // {0:{text:"Hello"}, 1:{text:"World"}}

sessionStoragelocalStorage类似,但只会在浏览器或标签关闭之前一直存在。


希望这有帮助!

答案 3 :(得分:0)

尝试这样的事情:

jQuery(document).ready(function($){
    var a=[];
a[0]= [["1","2","3"],["1","2","3"],["1","2","3"]];
a[1]= [["8","9","9"],["5","6","7"]];

var json_string_old=JSON.stringify(a); 

    //set myCookie
    $.cookie('myCookie',json_string_old); 

    //change the value of the array as per your requirments
   a[1]=[["2","2","2"],["2","2","2"]];
   a[2]=[["4","4","4"],["4","4","4"]];
    //convert it again to JSON String
var json_string_new=JSON.stringify(a);

    //now compafre & update accordingly
    if(json_string_new === json_string_old){
        console.log("same no need to update cookie");
    }else{
        console.log("different ok lets update the cookie");
       $.cookie('myCookie',json_string_new);     
    }    


});