【发布时间】:2021-12-12 17:38:37
【问题描述】:
基本上我想把一个地图变成一个字符串作为文本。我已经尝试过toString() 和模板文字,但显然返回 [object Map]。我还看到有些人将 Map 转换成一个对象,然后在其上调用 JSON.stringify()。
但是我不希望我的地图显示为 JSON 对象,而是显示为实际的地图
假设我有一张地图
{ 'key' => 'value' }
我希望它像上面那样显示,而不是像下面那样显示
{
"key": "value"
}
有什么办法可以做到吗?
更新: 经过一番试验,我终于找到了一个足够好的方法
const convertMapToString = (m: Map<string, IGuildCache | object>) => {
let mapEntries = [...m.keys()]
return '{\n' + mapEntries.map(k => {
return ' ' + k + ' => ' + JSON.stringify(m.get(k), null, 2)
}).join(',\n') + '\n}'
}
地图的值是对象,所以我不介意将它们转换为 JSON。
【问题讨论】:
-
显示是什么意思?一般来说,没有一种将对象显示为字符串的方式。
-
是的,有一种方法可以实现它:决定你的 Map 应该是什么样的字符串,然后编写你自己的代码让它看起来像这样。在一般情况下,通过涉及
JSON.stringify()的过程将 Map 实例转换为字符串会很困难,因为 JSON 语法只允许字符串键。
标签: javascript string dictionary