我想开始使用ES6 Map而不是JS对象,但是由于无法弄清楚如何对地图进行JSON.stringify()而被推迟了。我的键保证是字符串,并且我的值将始终列出。我真的必须编写包装方法来序列化吗?
1
关于2ality.com/2015/08/es6-map-json.html
—
David Chase
我能够使它工作。结果位于Plunkr上的embed.plnkr.co/oNlQQBDyJUiIQlgWUPVP上。该解决方案使用JSON.stringify(obj,replacerFunction)来检查是否传递了Map对象,并将Map对象转换为Javascript对象(该JSON.stringify)随后将转换为字符串。
—
PatS '18
如果保证您的键是字符串(或数字)和值数组,则可以执行类似
—
user56reinstatemonica8'5
[...someMap.entries()].join(';')
;的操作。对于更复杂的东西,您可以尝试使用类似的东西[...someMap.entries()].reduce((acc, cur) => acc + `${cur[0]}:${/* do something to stringify cur[1] */ }`, '')
@Oriol如果密钥名称可以与默认属性相同怎么办?
—
富兰克林·于
obj[key]
可能会给您带来意想不到的效果。考虑这种情况if (!obj[key]) obj[key] = newList; else obj[key].mergeWith(newList);
。