从嵌套数组JavaScript中删除双引号

时间:2018-08-20 10:55:24

标签: javascript arrays

如何从嵌套数组数据中删除双引号

["[a,b,c],[b,c,d],[e,f,g]"]

到此数组

[[a,b,c],[b,c,d],[e,f,g]]

使用javascript

1 个答案:

答案 0 :(得分:0)

您将需要a, b, c等的有效值,否则,将毫无意义。

一种方法是构造一个有效的JSON字符串并对其进行解析,如下所示:

var arr = ["[1,2,3],[4,5,6],[7,8,9]"];
var json = "{ \"x\" : [" + arr[0] + "] }";
console.log(json);
var res = JSON.parse(json);
console.log(res.x);
console.log(res.x[0]);
console.log(res.x[1]);
console.log(res.x[2]);

另一种方法是使用eval()

var arr = ["[1,2,3],[4,5,6],[7,8,9]"];
var res = eval("[" + arr[0] + "]");
console.log(res);
console.log(res[0]);
console.log(res[1]);
console.log(res[2]);

请注意-eval()被认为是危险的,因为它将执行您可能获取的几乎所有JavaScript(它不仅限于静态对象数据,而且与JSON.parse()相同)。


更新-如果您必须使用文字a,b,c等,则这些名称必须作为预定义变量存在于代码中,然后您只能使用eval(),因为eval()在程序范围内运行,而JSON.parse()不能。

示例:

var a = 1,
  b = "hello",
  c = new Date(),
  d = ["p", "q", "r"],
  e = 5,
  f = new Object(),
  g = 7;
var arr = ["[a,b,c],[b,c,d],[e,f,g]"];
var res = eval("[" + arr[0] + "]");
console.log(res);
console.log(res[0]);
console.log(res[1]);
console.log(res[2]);