Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Запись массива в cookie (https://javascript.ru/forum/misc/15853-zapis-massiva-v-cookie.html)

KonstantinK 16.03.2011 12:26

Запись массива в cookie
 
Подскажите , чет не соображу.
Мне нужно записать в cookie ассоциативный массив. Это будут данные корзины для магазина.
Как одну переменную записать это понятно, а вот массив не пойму, причем это же массив может дополняться.
Покажите примерный код хотя бы дальше я сам.

Matre 16.03.2011 13:25

В 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 }

FINoM 17.03.2011 03:16

Matre, а почему сразу не в json?

Matre 17.03.2011 07:01

FINoM, не люблю JSON.

Kolyaj 19.03.2011 20:30

Цитата:

Сообщение от Matre
не люблю JSON.

А JavaScript любит.


Часовой пояс GMT +3, время: 15:15.