gpt4 book ai didi

javascript - 如何将对象中的字符串值转换为数字和 bool 值?

转载 作者:行者123 更新时间:2023-12-04 14:56:07 24 4
gpt4 key购买 nike

例如,如果我有一个 JavaScript 对象,

{
id: "234",
name: "shreyas",
active: "true"
}

如何转换成这样

{
id: 234,
name: "shreyas",
active: true
}

基本上从数字和 bool 值中删除 ""(双引号)。

我设法删除了 bool 值

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}'`);
});

最佳答案

我的 process.env 也遇到了同样的问题。所以我创建了 parser 函数用于类型清晰的解析输出

  1. 我们需要预先声明数组中的假值和真值
  2. 然后根据匹配的数组条件返回循环内的值
  3. isNaN(Number(str)) 它只接受纯数字。允许像这样 "292" 而不是 a233
  4. 另外,您可以从字符串创建数组 one,two,three => ["one","two","three"]

const obj = { id: "234", name: "shreyas", active: "true",arr:"one,two,three" }


const clean = (value = '') => {
let FALSY_VALUES = ['', 'null', 'false', 'undefined'];
let TRUE_VALUES = ["true"];
if (!value || FALSY_VALUES.includes(value)) {
return false;
}else if (!value || TRUE_VALUES.includes(value)) {
return true;
} else if (!isNaN(Number(value))) {
return Number(value);
} else if (value.match(',')) {
return value.split(',').map((a) => a.trim());
}
return value;
};

const parser = (a)=> {
let env = {};
for (const k in a) {
env[k] = clean(a[k]);
}
return env;
};


console.log(parser(obj))

关于javascript - 如何将对象中的字符串值转换为数字和 bool 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67960318/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com