Как распарсить строку на ключ/значение?
Не понимаю как из строки:
"ST00012|Name=Мр"Водоканал"|PersonalAcc=40702813070000012а3456|BankName=Банк"
Можно получить объект ключ/значение
Ответы (1 шт):
Автор решения: Oliver Patterson
→ Ссылка
Сплитим изначальную строку по |
- это как я понял наш делитель между ключ=значение.
На выходе получим что-то типо:
['ST00012', 'Name=Мр "Водоканал"', 'PersonalAcc=40702813070000012а3456', 'BankName=Банк']
Дальше нам нужно пробежаться по этому массиву и сделать еще раз split
каждого элемента массива по =
который разделяет ключ и значение, и записать все это в объект - это все мы делаем в .reduce()
const rawString = 'ST00012|Name=Мр "Водоканал"|PersonalAcc=40702813070000012а3456|BankName=Банк';
const parsedObject = rawString.split("|").reduce((acc, item) =>
{
const [key, value] = item.split("=");
acc[key] = value;
return acc;
}, {})
console.info(parsedObject)
Второй вариант, где не будут добавляться ключи без значений.
const rawString = 'ST00012|Name=Мр "Водоканал"|PersonalAcc=40702813070000012а3456|BankName=Банк';
const parsedObject = rawString.split("|").reduce((acc, item) =>
{
const [key, value] = item.split("=");
if (value !== undefined)
{
acc[key] = value;
}
return acc;
}, {})
console.info(parsedObject)