В cookie можно записать только строку.
Записывайте свой массив, разделяя его такими символами, которые не встречаются в ключах и значениях самого массива.
Например, так:
function toString(O) {
var R = "";
for (var I in O)
if (O.hasOwnProperty(I))
R += "@KEY" + I + "IS=" + O[I];
return R;
}
toString({ a : 0, b : 1 }); // @KEYaIS=0@KEYbIS=1
Такую строку уже можно привести обратно к массиву:
function toObject(S) {
var R = {};
S = S.split(/@KEY|IS=/g);
for (var i = 0; i < S.length; i++)
R[i] = S[++i];
return R;
}
toObject("@KEYaIS=0@KEYbIS=1"); // { a : 0, b : 1 }