【发布时间】:2021-08-29 18:33:50
【问题描述】:
例如,如果我有类似的 JavaScript 对象,
{
id: "234",
name: "shreyas",
active: "true"
}
我怎样才能把它变成这样
{
id: 234,
name: "shreyas",
active: true
}
基本上从数字和布尔值中删除""(双引号)。
我设法删除了布尔值
let query = JSON.stringify(req.query);
query.replace(/"true"/g, `true`).replace(/"false"/g, `false`);
query = JSON.parse(query)
除了数字之外,我怎样才能做到这一点?
到目前为止我尝试了什么:
const nums = query.match(/"\d+"/g);
nums?.forEach((num) => {
const newNum = parseInt(num)
query.replace(`${num}`, `'${newNum}'`);
});
【问题讨论】:
-
我认为
parseInt()应该可以解决您的问题 -
IKR,但我如何找到带双引号的数字,并用相同的值替换没有 qoutes 的数字?
const nums = query.match(/"\d+"/g); nums?.forEach((num) => { const newNum = parseInt(num) query.replace(`${num}`, `'${newNum}'`); }); -
我们为什么不找到问题的根源呢?这些物体是从哪里来的?哪些代码负责将这些数字和布尔属性添加为字符串?
-
这来自我的 API 的查询参数。不过,这是一个很好的观点。
标签: javascript json object serialization