我有一根这样的弦
var string = "1234|Tom|NYC|Student|Active"
我想在typescript中Map到NodeJS API
{
"Id": 1234,
"Name": "Tom",
"City": "NYC",
"Title": "Student",
"Status": "Active",
}
这里的密钥来自一组可以存储在任何地方的静态密钥。
我尝试将字符串转换为数组并尝试.reduce
,但最终无法获得所需的结果...
你能帮帮忙吗?
3条答案
按热度按时间5w9g7ksd1#
你可以有一个像下面这样的键数组:
然后按如下方式在分隔符上拆分字符串:
然后循环遍历键数组,并根据值数组的索引创建一个具有键值的对象:
或者,您可以创建一个函数,该函数接受键数组、字符串值和分隔符并返回对象:
但是,只有当键和值始终以相同的顺序出现时,此解决方案才有效。
如果希望它是一个JSON字符串,则可以对返回的对象调用
JSON.stringify()
。z9smfwbn2#
你可以这样使用
.split()
:然后你创建一个对象:
0s7z1bwu3#
将任意字符串值Map到一组已定义的键将需要强制执行字符串值的固定格式。
否则,将不会有任何优化的方法将值Map到一组键,除非手动迭代通过分隔符(
|
)拆分字符串(var string = "1234|Tom|NYC|Student|Active"
)形成的“字符串值数组”,然后手动将值Map到定义的键的集合...(
let keys = ["Id", "Name", "City", "Title", "Status"];
)