Javascript 将字符串转换为具有字段的对象
假设我们有这样一个字符串:Javascript 将字符串转换为具有字段的对象,javascript,Javascript,假设我们有这样一个字符串: string = 'user - 2021-02-19 08:34:02 - PACKED, user2 - 2021-02-26 12:18:25 - PACKED' 如何将此字符串转换为具有以下字段的对象: if (lastWord == 'PACKED'){ obj1 = { User: 'user', Time: '2021-02-19 08:34:02' }
string = 'user - 2021-02-19 08:34:02 - PACKED, user2 - 2021-02-26 12:18:25 - PACKED'
如何将此字符串转换为具有以下字段的对象:
if (lastWord == 'PACKED'){
obj1 = {
User: 'user',
Time: '2021-02-19 08:34:02'
}
obj2 = {
User: 'user2',
Time: '2021-02-26 12:18:25'
}
}
如果我们使用json.parse,输出将是:
var obj = JSON.parse(string);
console.log(obj):
[
'user - 2021-02-19 08:34:02 - PACKED',
'user2 - 2021-02-26 12:18:25 - PACKED'
]
我想我们可以从这里开始,让事情变得更容易
// input: 'user - 2021-02-19 08:34:02 - PACKED, user2 - 2021-02-26 12:18:25 - PACKED'
// [{ User: 'user', Time: '2021-02-19 08:34:02' }, { User: 'user2', Time: '2021-02-26 12:18:25' }]
function parse(str) {
const extractPart = str.split(",").map(s => s.trim());
return extractPart.map(splitEachPart);
}
// input: user - 2021-02-19 08:34:02 - PACKED
// output: { User: 'user', Time: '2021-02-19 08:34:02' }
function splitEachPart(str) {
const [user, time, packed] = str.split(" - ")
return {
User: user,
Time: time
}
}
console.log(parse('user - 2021-02-19 08:34:02 - PACKED, user2 - 2021-02-26 12:18:25 - PACKED'));
代码首先用逗号分隔,然后用破折号分隔。因此,我们依赖于输入格式中逗号和破折号的假设,以确保输出正确。到目前为止您尝试了什么?