javascript - 如何在本地存储(或其他地方)中保存 ES6 map ?

标签 javascript json dictionary ecmascript-6

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 在恢复时变成了一个空对象。

我找到了 es6-mapify允许在 Map 和普通对象之间进行向上/向下转换,因此这可能是一种解决方案,但我希望我需要借助外部依赖项来简单地保留我的 map 。

最佳答案

假设您的键和值都是可序列化的,

localStorage.myMap = JSON.stringify(Array.from(map.entries()));

应该可以。相反,使用

map = new Map(JSON.parse(localStorage.myMap));

关于javascript - 如何在本地存储(或其他地方)中保存 ES6 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28918232/

相关文章:

javascript - jQuery 返回 [object Object] 值(镜像文本输入字段的值)

javascript - 在 Wordpress 循环中使用 JS/jQuery 显示和隐藏 div

javascript - php/js JSON 未通过有效

python - 使用字典计算文件中的单词数不起作用

python - 拍卖脚本(从文件输入到字典)

ios - 如何在 Swift 中组合两个 Dictionary 实例?

javascript - 防止 div 在 slideUp() 之后显示 - jQuery

javascript - 元素无法位于 (x,y) : how to fix for a list of WebElements that need to be clicked one by one

database - 通过 http 和 json 同步 2 个 sqlite 表的最佳方法是什么?

javascript - Angular $http.get 总是改变 JSON 中的顺序