gpt4 book ai didi

javascript - 在javascript中映射对象的字符串

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:11:14 25 4
gpt4 key购买 nike

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() 将 map 对象转换为字符串,现在我无法将字符串转换为 map 对象。

最佳答案

要存储字符串化结果,最好使用纯 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 也将返回相同的东西,并且可以在这里使用,但另一方面,在执行它之前,有人不能授予它实际返回的内容,获得一个 Iterator 然后形成一个数组是更传统和可读的,但是 Array.from(map) 可能是更好的解决方案。此外,spread operator 可用于 ma​​p [...map]ma​​p.entries() [...map.entries()] 形成相同的条目数组。

关于javascript - 在javascript中映射对象的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45957670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com