Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:在cookie中更新数组_Javascript_Jquery_Json_Cookies - Fatal编程技术网

Javascript jQuery:在cookie中更新数组

Javascript jQuery:在cookie中更新数组,javascript,jquery,json,cookies,Javascript,Jquery,Json,Cookies,数组-多维数组: array[0] = [["1","2","3"],["1","2","3"],["1","2","3"]]; 我需要将这个数组放入cookie($.cookie('mycokie',JSON.stringify(数组))) 现在是有趣的部分: 我需要维护MyOkie,并在其中添加新数据 如果新生成的array有任何新数据(元素),我需要从数组中提取新元素并将它们添加到mycokie 最优雅的方式是什么?最优雅的方式是按照您最初设置的方式进行操作-用新数组值覆盖cookie…

数组
-多维数组:

array[0] = [["1","2","3"],["1","2","3"],["1","2","3"]];
我需要将这个数组放入cookie(
$.cookie('mycokie',JSON.stringify(数组))

现在是有趣的部分:

我需要维护MyOkie,并在其中添加新数据

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


最优雅的方式是什么?

最优雅的方式是按照您最初设置的方式进行操作-用新数组值覆盖cookie…

以下是您的操作方法,步骤格式:

  • 创建数组的JSON版本
    jsonArray
  • 以JSON格式下拉cookie
  • 在不进行反序列化的情况下,将其与
    jsonArray
    进行比较
  • 如果字符串不相同,则将cookie设置为
    jsonArray
  • 否则,什么也不做

  • 哦,我不知道如何使用客户端语言在客户端存储上使用cookie。这确实是为php所做的

    你应该研究一下这样的东西,它更方便

    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"}}
    
    sessionStorage
    类似于
    localStorage
    ,但仅在浏览器或选项卡关闭之前保持



    希望这有帮助

    试试这样的方法:

    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);     
        }    
    
    
    });
    

    对其进行反序列化、更改、重新序列化和设置。要不然怎么做?@KevinB将
    数组
    转换为对象,
    JSON.parse('mycokie')
    ,并在循环中检查数组中的每个项,如果它在
    mycokie
    中存在?(你已经失去我了,但还好…)然后呢?新项目的第三个对象?问题是#5“否则”我需要从jsonArray中提取更改并将其添加到cookie@rinchik:否,因为如果数组不匹配,则它们是相同的,并且没有任何更改。如果没有任何更改,则您没有理由向cookie添加任何更改。:-)