var map = new Map();
map.set('key1','value1');
map.set('key2','value2');
console.log(map);
console.log(map.toString());
console.log(JSON.parse(map.toString()))
//Uncaught SyntaxError: Unexpected token o in JSON at position 1
使用将地图对象转换为字符串toString()
现在我无法从字符串转换为地图对象。
要存储字符串化结果,最好使用纯 JSON 对象,但是使用Map
您可以创建一个条目数组并将其字符串化
var str = JSON.stringify(Array.from( map.entries()));
然后你可以再次将 JSON 字符串解析为数组并构造一个新的Map
var map = new Map(JSON.parse(str))
var map1 = new Map();
map1.set('key1','value1');
map1.set('key2','value2');
var str = JSON.stringify(Array.from( map1.entries()));
//store the string somewhere or pass it to someone
//or however you want to carry it
//re construct the map again
var map2 = new Map(JSON.parse(str))
console.log('key1', map2.get('key1'));
console.log('key2', map2.get('key2'));
然而,Array.from(map)
,或者 using 也会返回相同的东西并且可以在这里使用,但是在执行它之前有人无法授予它实际返回的内容,另一方面,获取迭代器然后形成数组更传统和可读,但是 Array.from (地图)可能是更好的解决方案。还spread operator
可以用过map [...map]
or 地图.entries() [...map.entries()]
形成相同的条目数组。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)