Я унаследовал базу данных, в которой хранится массив строк в следующем формате:
{"First","Second","Third","Fourth"}
Это выводится как упорядоченный список в приложении. В настоящий момент мы заменяем мобильное приложение переднего плана (ионное/угловое) и хотим сделать ngFor над этим массивом. На первой итерации мы быстро и грязно заменили фигурные скобки, а затем разделили строку на ",", но хотели бы использовать лучший метод.
Каков наилучший метод для обработки этого типа строки в виде массива?
Вы можете сделать замену строк скобками на скобки:
str.replace(/{(.*)}/, '[$1]')
Эта конкретная строка может быть проанализирована как массив (через JSON.parse).
Если вы хотите сделать синтаксический анализ массива на передней панели, будет ли эта работа?:
const oldStyle = '{"First","Second","Third","Fourth"}'
const parseOldStyleToArray = input => input
.replace(/[\{\}]/g, '')
.split(',')
.map(item => item.replace(/\"/g, ''))
const result = parseOldStyleToArray(oldStyle)
console.dir(result)
Другой способ сделать более широкую замену key:value
сопоставление key:value
.
str = '{"First","Second","Third","Fourth"}';
mapping = {
'{': '[',
'}': ']'
}
result = str.replace(/[{}]/g, m => mapping[m]);
console.log(result);
JSON.parse
результат.