2

array- 多次元配列:

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

この配列を Cookie に入れる必要があります ( $.cookie('myCookie', JSON.stringify(array)))

興味深い部分は次のとおりです。

myCookie新しいデータを維持してそこに入れる必要があります。

新しく生成されarrayたものに新しいデータ (要素) がある場合は、配列から新しい要素を取得して追加する必要があります。myCookie

それを行う最もエレガントな方法は何ですか?

4

4 に答える 4

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"}}

sessionStorageに似てlocalStorageいますが、ブラウザまたはタブが閉じられるまで持続します。


これがお役に立てば幸いです。

于 2013-03-05T23:13:48.277 に答える
0

最もエレガントな方法は、最初に設定したのと同じ方法で行うことです-Cookieを新しい配列値で上書きします...

于 2013-03-05T23:12:06.660 に答える
0

ステップ形式で行う方法は次のとおりです。

  1. 配列の JSON バージョンを作成しますjsonArray
  2. JSON形式のCookieをプルダウン
  3. 逆シリアル化せずに、 と比較しjsonArrayます。
  4. 文字列が同じでない場合は、Cookie を に設定しますjsonArray
  5. それ以外の場合は、何もしません。
于 2013-03-05T23:12:57.997 に答える
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);     
    }    


});
于 2013-03-06T00:15:30.417 に答える