Как вернуть значение из 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));
→ Ссылка