javascript - jQuery 数组到 cookie

标签 javascript jquery jquery-cookie

var adddata = [];
adddata[ group ] = [];
adddata[ group ][ id ] = option; // option is an object like { foo : 'bar' }

console.log( adddata ); // looks ok

$.cookie( 'cookiename', JSON.stringify( adddata ) );
console.log( $.cookie( 'cookiename' ) ); // just "[]"
$.cookie( 'cookiename', adddata );
console.log( $.cookie( 'cookiename' ) ); // "an empty string"

// in another file
var cdata = JSON.parse( $.cookie( 'cookiename' ) );
$.each( cdata, function( group, items ){
    /* and so on */
});

如您所见,我使用了 $.cookie 插件。但是我怎样才能以正确的方式将数组存储到 cookie 中呢?

谢谢和问候, 亚历克斯

最佳答案

如果 groupid 不是数值,JSON.stringify 将忽略它们。将数组转换为 JSON 时仅考虑数字属性。

参见:

> a = []
  []
> a['foo'] = 5
  5
> a[0] = 42
  42
> JSON.stringify(a)
  "[42]"

如果您处理非数字属性,则必须使用对象 {}:

> a = {}
  Object
> a['foo'] = 5
  5
> JSON.stringify(a)
  "{"foo":5}"

切勿将 JavaScript 数组 用作关联数组。 JS 数组应该只有数字键。对于其他一切,请使用普通对象。

关于javascript - jQuery 数组到 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6426033/

相关文章:

javascript - FullCalendar - 将事件保存在 cookie 中

javascript - 在react和webpack中获取工作目录和文件名

javascript - 执行 ng-repeat 后如何更改表格行的颜色

javascript - 将 javascript 和 jquery 与 XSL 转换或函数参数混合时遇到问题?

javascript - 为什么 jQuery cookie 实际上没有设置 cookie?

javascript - jQuery 用户界面 : Save height and position of divs in cookie

javascript - 如何强制谷歌翻译在脚本加载后翻译页面?

javascript - 如何将来自 HTML UI 的多个输入添加到 Google 电子表格?

javascript - 重复按钮不起作用 click();

javascript - 从 Selenium Webdriver 中的 JQuery 脚本返回值