Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Массив в cookie (https://javascript.ru/forum/dom-window/80882-massiv-v-cookie.html)

him 20.08.2020 12:53

Массив в cookie
 
Есть массив

var arr = new Map([
			['k1', '1'],	
			['k2', '0'],
			['k3', '1']
		]);


Как его можно разместить в куках, а потом достать. Массив может быть более 20 элементов. На просторах интернета есть некоторые решения, но пока получить рабочее не удалось.
Спасибо!

рони 20.08.2020 13:17

him,
https://javascript.ru/forum/events/3...tml#post512113

him 20.08.2020 13:57

Некоторые момента кода для меня сложны, но идею вроде как улавливаю, наверно.

Примерно так, один из вариантов, я и пытался сделать.

var arr = new Map([
			['k1', '1'],	
			['k2', '0'],
			['k3', '1']
		]);
console.log(arr);
$.cookie('name', JSON.stringify(arr));

var storedAry = JSON.parse($.cookie('name'));
console.log(storedAry);


В консоли

Map(3)
size: 3
<entries>
<prototype>: Object { … }


<prototype>: Object { … }


Как видно, корректно не распаковалось.

voraa 20.08.2020 14:18

JSON.stringify([...arr.entries()])

рони 20.08.2020 14:20

him,
var arr = new Map([
			['k1', '1'],
			['k2', '0'],
			['k3', '1']
		]);
console.log(arr);
localStorage.name = JSON.stringify([...arr])
var storedAry = new Map(JSON.parse(localStorage.name || "[]"));
console.log(storedAry);

him 20.08.2020 17:33

Спасибо! Заработало!

А что означает синтаксис конструкции:
[...arr]
?

рони 20.08.2020 18:05

him,
https://learn.javascript.ru/destructuring-assignment


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