在javascript中将字符串转换为数组的数组

Abh*_*nav 1 javascript

我有一个字符串如下:

my_string = "['page1',5],['page2',3],['page3',8]";
Run Code Online (Sandbox Code Playgroud)

我想将其转换为以下内容:

my_array = [['page1',5],['page2',3],['page3',8]];
Run Code Online (Sandbox Code Playgroud)

我知道有一个分割函数,我必须在其中指定分隔符。当我这样做时:-

my_string.split(',');
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

 ["['page1'", "5]", "['page2'", "3]", "['page3'", "8]"]
Run Code Online (Sandbox Code Playgroud)

Nic*_*ons 5

您应该尝试做的第一件事是创建my_string一个有效的 JSON 字符串。这意味着字符串两边不是单引号 ( '),而是双引号 ( ")。要创建这样的 JSON 字符串,您可以使用JSON.stringify()要转换为字符串的数据。以下是您可以使用的数组的有效 JSON 字符串JSON.parse(my_string)

const my_string = '[["page1",5],["page2",3],["page3",8]]';
const res = JSON.parse(my_string);
console.log(res);
Run Code Online (Sandbox Code Playgroud)

如果您出于某种原因无法执行此操作,则可以尝试以下选项之一。

您可以使用JSON.parse().replace()使您的字符串成为可解析的有效 JSON 字符串,如下所示:

const my_string = "['page1',5],['page2',3],['page3',8]",
stringified = '['+my_string.replace(/'/g, '"')+']';

console.log(JSON.parse(stringified));
Run Code Online (Sandbox Code Playgroud)

或者您可以使用Function构造函数“松散”地解析您的 JSON。my_string请注意,您应该仅在来自受信任的来源(即:不是用户输入)时使用它:

const  my_string  = "['page1',5],['page2',3],['page3',8]";
arr = Function('return [' +  my_string + ']')(); 

console.log(arr);
Run Code Online (Sandbox Code Playgroud)