我有这个字符串result:tie,player:paper,computer:paper
我想您可以拆分成数组并创建一个对象并将其解析为对象,但这似乎不是一个好方法。
我如何将这个字符串作为对象?
let string = "result:tie,player:paper,computer:paper"
答案 0 :(得分:1)
对于这个特定的字符串,我可以通过用"
s包围键和值,然后使用JSON.parse
将字符串转换为正确的JSON:
const string = "result:tie,player:paper,computer:paper";
const json = '{' + string.replace(/(\w+):(\w+)/g, `"$1":"$2"`) + '}';
console.log(JSON.parse(json));
尽管,理想情况下,无论为您提供什么服务,该字符串都应该为您提供JSON格式的内容,而不是强迫您诉诸于这种骇人听闻的方法来处理输入中断。 >
答案 1 :(得分:1)
在,
上拆分以获取key:value标记,在:
上拆分以获取键和值,然后将它们添加到收集键值对的简化对象中。
var temp = "result:tie,player:paper,computer:paper";
var obj = temp.split(',').reduce((result, token)=>{
var [key, value] = token.split(':');
result[key] = value;
return result;
}, {});
console.log(obj);
答案 2 :(得分:1)
在,
上分割,遍历并在:
上分割每个字符串,并基于该字符串创建对象键/值属性。为简化起见,使用解构:
let string = "result:tie,player:paper,computer:paper";
let obj = {};
let propsArr = string.split(",");
propsArr.forEach(s => {
var [key, value] = s.split(":");
obj[key] = value;
});
console.log(obj);