我想将Javascript数组存储为Cookie

Ogu*_*gic 41 javascript cookies jquery

是否可能,我有一些列表,我想将它存储在浏览器上,如果不可能,这样做的有效方法是什么?

Geo*_*gan 82

JSON对其进行编码,有效地生成一个字符串,就像"{name:'myname',age:'myage'}"放入cookie一样,在需要时检索并解码回JavaScript数组/对象.

示例 - 将数组存储在cookie中:

var arr = ['foo', 'bar', 'baz'];
var json_str = JSON.stringify(arr);
createCookie('mycookie', json_str);
Run Code Online (Sandbox Code Playgroud)

稍后,将cookie的内容检索为数组:

var json_str = getCookie('mycookie');
var arr = JSON.parse(json_str);
Run Code Online (Sandbox Code Playgroud)

注意: cookie函数不是本机的,取自如何从cookie创建和读取值?

  • +1用于保留键和值. (2认同)
  • 这拯救了我的一天!谢谢你。 (2认同)

Dan*_*llo 31

一种快速方法是join()使用适当的分隔符将数组转换为单个字符串:

var a = [1, 2, 3, 4];
a.join('|');  // Returns: "1|2|3|4"
Run Code Online (Sandbox Code Playgroud)

然后只需使用string split()方法从cookie字符串中取回数组.

  • 一个小的修正,它需要被分配为这样的新变量,`var new_a = a.join('|')` 它将返回“1|2|3|4”。 (2认同)