web-dev-qa-db-ja.com

JavaScript配列をCookieとして保存したい

それは可能ですか、何らかのリストがあり、それをブラウザに保存したいのですが、不可能な場合、これを行う効率的な方法は何ですか?

38
Oguz Bilgic

JSONはそれをエンコードし、"{name:'myname',age:'myage'}" Cookieに入れ、必要なときに取得し、JavaScript配列/オブジェクトにデコードします。

例-配列をクッキーに保存する:

var arr = ['foo', 'bar', 'baz'];
var json_str = JSON.stringify(arr);
createCookie('mycookie', json_str);

後で、Cookieのコンテンツを配列として取得するには:

var json_str = getCookie('mycookie');
var arr = JSON.parse(json_str);

注:Cookie関数はネイティブではなく、 Cookieから値を作成して読み取る方法

79
George Kagan

簡単な方法の1つは、適切な区切り文字を使用して join() 配列を単一の文字列にすることです。

_var a = [1, 2, 3, 4];
a.join('|');  // Returns: "1|2|3|4"
_

次に、文字列 split() メソッドを使用して、Cookie文字列から配列を取得します。

30
Daniel Vassallo