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

代码首先用逗号分隔,然后用破折号分隔。因此,我们依赖于输入格式中逗号和破折号的假设,以确保输出正确。

到目前为止您尝试了什么?