【关键字】
数据转换、JSON.stringify、Object.fromEntries
【问题背景】
将数组转换成Map对象,然后调用let str = JSON.stringify(newMap),将Map转换成字符串,转换出来的结果是{}
问题代码:
let data = [{ key: 'where', value: '何地'},{ key: 'when', value: '何时'},{ key: 'why', value: '何因'},]
let newMap = new Map<string,string>()
data.forEach((item) => {newMap.set(item.key,item.value)})
let str = JSON.stringify(newMap)
console.info(str+'newMap')
【解决方案】
先用Object.fromEntries将Map转为object再进行转换就可以了
let data = [{ key: 'where', value: '何地'},{ key: 'when', value: '何时'},{ key: 'why', value: '何因'},]
let newMap = new Map<string,string>()
data.forEach((item) => {newMap.set(item.key,item.value)})
let str = JSON.stringify(Object.fromEntries(newMap))
console.info(str+'newMap')
逆转换可参考Object.entries方法。
【参考文档】
Object.fromEntries() - JavaScript | MDN