我有一个字符串
string = "name: my name
email: myemail
address: my address";
这将由用户粘贴。
现在我要它转换成这样的对象
obj = {"name":"my name", "email":"myemail", "address":"my address"}
如何在JS中做到这一点?
我已经尝试过了 String to object in JS 但这仅在有逗号分隔符时有效。
答案 0 :(得分:0)
解决此问题的最简单方法是将其压缩在萌芽状态-发送对象而不是字符串。如果不可能,请在多行字符串上使用split
和reduce
:
const string = `name: my name
email: myemail
address: my address`;
const res = string.split("\n").map(e => e.split(":").map(f => f.trim())).reduce((a, [k, v]) => ({ ...a, [k]: v }), {});
console.log(res);
答案 1 :(得分:0)
您可以使用ECMAScript 2019 Object.fromEntries()
函数:
const string = "name: my name\nemail: myemail\naddress: my address";
const object = Object.fromEntries(string.split(/\n/).map(s => s.split(/: /)));
console.log(object);
答案 2 :(得分:0)
听起来有点像编码挑战:)
def flag_nonword(w):
input_len = len(w)+3
tokens_ext = tokens.loc[tokens['len'] < input_len]
return list(tokens.iloc[:,0].iloc[:6])