将花括号中的数组转换为方括号数组

时间:2018-08-06 15:30:05

标签: javascript arrays angular ionic-framework ionic3

我继承了一个数据库,该数据库以以下格式存储字符串数组:

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

这在应用程序中作为有序列表输出。我们目前正在替换前端移动应用(离子/角度),并希望对此数组执行ngFor。在第一个迭代中,我们对花括号进行了快速而肮脏的替换,然后将字符串拆分为“,”,但希望使用更好的方法。

将这种类型的字符串视为数组的最佳方法是什么?

3 个答案:

答案 0 :(得分:2)

您可以将花括号替换为方括号:

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

然后可以将此特定字符串解析为数组(通过JSON.parse)。

答案 1 :(得分: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)

答案 2 :(得分:0)

通过key:value映射进行更广泛替换的另一种方法。

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