在JavaScript中将字符串转换为数组数组

时间:2019-02-04 07:11:53

标签: javascript

我有一个字符串如下:

my_string = "['page1',5],['page2',3],['page3',8]";

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

my_array = [['page1',5],['page2',3],['page3',8]];

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

my_string.split(',');

我得到以下结果:

 ["['page1'", "5]", "['page2'", "3]", "['page3'", "8]"]

3 个答案:

答案 0 :(得分:4)

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

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

console.log(JSON.parse(stringified));

或者您可以使用Function构造函数来“松散”地解析JSON:

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

console.log(arr);

答案 1 :(得分:1)

您可以使用eval()函数将字符串转换为数组。请参见下面的代码。

my_string = "['page1',5],['page2',3],['page3',8]";

my_array = eval(`[${my_string}]`);

console.log(my_array);

但是,如果使用不当,使用eval()函数会带来一系列弊端。在任何认真的代码中使用eval之前,请通读this answer

答案 2 :(得分:0)

首先用“],[”分割字符串,然后得到一个像波纹管这样的数组

splitted_string = ["[page1,5", "[page2,3" , "[page3,8"];

然后循环遍历此数组并除去“ [”字符,您将得到一个类似于波纹管的数组

splitted_string = ["page1,5", "page2,3" , "page3,8"];

最后循环此数组,并用“,”分隔每个元素。中提琴!你得到了想要的波纹管

splitted_string =  [['page1',5],['page2',3],['page3',8]];