我有一个字符串如下:
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]"]
答案 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]];