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 中呢?
谢谢和问候, 亚历克斯
最佳答案
如果 group
和 id
不是数值,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/