将特殊字符串转换为数组Javascript

时间:2016-08-23 10:59:47

标签: javascript arrays string split

我有这样的字符串:

var S1 = "[ \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\" ]";
var S2 = "[ \"2\" ]";
var S3 = "[ \"1\", \"2\", \"3\" ]";

我想在JavaScript下将它们转换为这样的数组:

var S1a = ['1','2','3','4','5','6','7'];
var S2a = ['2'];
var S3a = ['1','2','3'];

请问我怎样才能实现上述目标?

3 个答案:

答案 0 :(得分:3)

您可以将JSON.parse()用于此

编写代码如下:

var S1 = "[ \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\" ]";
var arr = JSON.parse(S1);

来自this post

答案 1 :(得分:1)

只是为了好玩,你也可以这样做。如果您希望结果数组包含整数而不是字符串字符,那么只需r.concat(+e)而不是r.concat(e)



var s = "[ \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\" ]",
    a = s.split(/\[*\s*\"(\d+)\",*\s*\]*/).reduce((r,e,i) => i%2 ? r.concat(e) : r,[]);
console.log(a);




答案 2 :(得分:0)

你可以像JSON一样解析:

JSON.parse("[ \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\" ]");

输出将是:["1", "2", "3", "4", "5", "6", "7"]

  

示例小提琴:https://jsfiddle.net/us9L1ed0/

     

JSON.parse参考:   https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse   http://www.w3schools.com/json/json_eval.asp

     

根据您的示例编写代码段

var S1 = "[ \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\" ]";
var S2 = "[ \"2\" ]";
var S3 = "[ \"1\", \"2\", \"3\" ]";

var S1a =JSON.parse(S1)
var S2a=JSON.parse(S2)
var S3a = JSON.parse(S3)

console.log(S1a);
console.log(S2a);
console.log(S3a);