Преобразование массива в фигурных скобках в квадратный массив в квадратных скобках

1

Я унаследовал базу данных, в которой хранится массив строк в следующем формате:

{"First","Second","Third","Fourth"}

Это выводится как упорядоченный список в приложении. В настоящий момент мы заменяем мобильное приложение переднего плана (ионное/угловое) и хотим сделать ngFor над этим массивом. На первой итерации мы быстро и грязно заменили фигурные скобки, а затем разделили строку на ",", но хотели бы использовать лучший метод.

Каков наилучший метод для обработки этого типа строки в виде массива?

  • 0
    Лучше как? Что не так с методом, который вы используете?
  • 0
    Просто замените первый и последний волнистые скобки и JSON.parse результат.
Теги:
angular
ionic-framework
arrays
ionic3

3 ответа

2
Лучший ответ

Вы можете сделать замену строк скобками на скобки:

str.replace(/{(.*)}/, '[$1]')

Эта конкретная строка может быть проанализирована как массив (через JSON.parse).

  • 0
    Да, это почти то же самое, что у нас на месте, но затем последовал раскол. Я оставлю это открытым на некоторое время, но я полагаю, что мы могли бы просто поменять его на JSON.parse и оставить там. Спасибо!
0

Если вы хотите сделать синтаксический анализ массива на передней панели, будет ли эта работа?:

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)
0

Другой способ сделать более широкую замену key:value сопоставление key:value.

str = '{"First","Second","Third","Fourth"}';
mapping = {
  '{': '[',
  '}': ']'
}
result = str.replace(/[{}]/g, m => mapping[m]);
console.log(result);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню