var a = new Map([[ 'a', 1 ]]); a.get('a') // 1 var forStorageSomewhere = JSON.stringify(a); // Store, in my case, in localStorage. // Later: var a = JSON.parse(forStorageSomewhere); a.get('a') // TypeError: undefined is not a function
不幸的是,JSON.stringify(a);简单地返回’{}’,这意味着a在还原后变成空对象。
JSON.stringify(a);
我发现es6-mapify允许在Map和普通对象之间进行上/下转换,所以这可能是一种解决方案,但是我希望我仅需要使用外部依赖项来持久保存我的地图。
假设您的键和值都是可序列化的,
localStorage.myMap = JSON.stringify(Array.from(map.entries()));
应该管用。反之,使用
map = new Map(JSON.parse(localStorage.myMap));