我有一个字符串,想根据某些条件将其转换为对象。
我的字符串是'?client=66&instance=367&model=125'
。我想将其转换为像
{
"client": 66,
"instance": 367,
"model": 125
}
我已经成功实现了它,但想找到更好的解决方案。下面是我的实现:
const path = '?client=66&instance=367&model=125';
const replacedPath = path.replace(/\?|&/g, '');
const clearedPath = replacedPath.match(/[a-z]+|[^a-z]+/gi).map(str => str.replace(/=/g, ''))
var output = {}
clearedPath.forEach((x, i, arr) => {
if (i % 2 === 0) output[x] = Number(arr[i + 1]);
});
console.log(output)
请指教。非常感谢任何帮助。
最佳答案
Object.fromEntries(
'client=66&instance=367&model=125'.split('&').map(it => it.split('='))
)
只需删除第一个“?”:
let src = '?client=66&instance=367&model=125';
if (src[0] === '?') src = src.substring(1);
const obj = Object.fromEntries(
'client=66&instance=367&model=125'.split('&').map(it => it.split('='))
);
console.log(obj);
打印{客户端:“66”,实例:“367”,模型:“125”}
关于javascript - 将字符串转换为对象 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61580932/