如何使用 Javascript 将包含数组的字符串转换为数组?

问题描述 投票:0回答:2

我有以下字符串:'[a, b]' 我想得到一个如下所示的数组:["a", "b"]

这是我写的代码:

const string = '[a, b]'
const array = string.replace('[', '').replace(']', '').replaceAll('\'', '').split(',')
console.log(array)

我的代码解决了我遇到的问题,但我想知道与我所做的相比是否有更好的方法来做到这一点。

javascript arrays string
2个回答
-1
投票

你不能只去掉第一个和最后一个字符然后在

', '
上拆分吗?基本上和你做的一样,但代码更少

const str = '[a, b]';

console.log(str.slice(1, -1).split(', '))


-3
投票

你的问题不是很清楚

如果你的字符串总是
'[a, b]'

你可以这样做:

const result = ['a', 'b']

因为解析任何东西都没有意义

如果你的字符串像
'[a, b]'
'[x, d]'

  1. 使用
    str.replace(/[a-z]/g, '"$&"'
    a
    变成
    "a"
  2. 使用
    JSON.parse
    解析字符串

const str = '[a, b]'
const result = JSON.parse(str.replace(/[a-z]/g, '"$&"'))
console.log(result)

/[a-z]/g
可以替换为任何其他正则表达式,具体取决于您的子字符串的复杂程度,例如
/[a-zA-Z\d]+/g
将接受具有不同大小写和数字的更长子字符串

这是一个更好的解决方案,因为仅转换无效部分然后使用

JSON.parse
使得更难犯错。


但最可靠的解决方案是将您的初始字符串更改为有效的 json

© www.soinside.com 2019 - 2024. All rights reserved.