本帖最后由 涛之雨 于 2021-10-6 10:47 编辑
emmm
字符串里本来就都是字符串啊。。。哪来的布尔啊数字啊。。。
除非去用正则表达式去判断,比如/true|false/.test就是布尔型,然后转换成对应的布尔型。
/\d+/.test就是数字
/null/.test就是null以此类推
花了几分钟写了一下,大概应该是楼主想要的结果吧,不够类型的自己向里面添加正则表达式的map就行
[JavaScript] 纯文本查看 复制代码 const regMap = [{
type: "number",
reg: /\d+/
}, {
type: "boolean",
reg: /true|false/
}, {
type: "null",
reg: /null/
}, {
type: "undefined",
reg: /undefined/
}], str = "this is str, 123,true,false, null", data = str.split(",").map(e => e.trim()).map(e => {
for (const r of regMap)
if (r.reg.test(e)) switch (r.type) {
case "number":
return Number(e);
case "boolean":
return "true" === e;
case "null":
return null;
case "undefined":
return;
}
});
console.log(data);
|