#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'
}
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'
]
Я думаю, что мы можем начать отсюда, чтобы сделать все проще.
Комментарии:
1. Что вы пробовали до сих пор?
Ответ №1:
// 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'));
Код сначала разделяется запятой, а затем разделяется тире. Поэтому мы полагаемся на предположения о запятых и тире во входном формате, чтобы вывод был правильным.