Как вернуть значение из sessionStorage?
Помогите разобраться, есть следующий код
var a = new Map();
a.set("key1","value1")
a.set("key2","value2")
a.set("key3","value3")
sessionStorage.setItem("saveData", JSON.stringify(a));
var result = JSON.parse(sessionStorage.getItem("saveData"));
Как теперь обращаться к элементам a которые сохранены в сессии?
В JS не силен, поэтому прошу не сильно не кидаться
Ответы (2 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Map просто так в строку не перевести. Нужно чуть более хитрое действие. Вот так:
let mySerialMap = JSON.stringify(Array.from(myMap.entries()))
А обратно уже вот так:
let myMap = new Map(JSON.parse(mySerialMap))
В последнем примере вместо mySerialMap будет данные из хранилища
Автор решения: Neverm1ndo
→ Ссылка
Map не преобразовывается в строку.
Можно сначала создать Object из Map.
JSON.stringify(Object.fromEntries(map));
var a = new Map();
a.set("key1","value1")
a.set("key2","value2")
a.set("key3","value3")
sessionStorage.setItem("saveData", JSON.stringify(Object.fromEntries(a)));
var result = JSON.parse(sessionStorage.getItem("saveData"));
Чтобы снова преобразовать распаршеный после JSON.parse() объект в Map
const a = new Map(Object.entries(result));