如何从嵌套数组数据中删除双引号
["[a,b,c],[b,c,d],[e,f,g]"]
到此数组
[[a,b,c],[b,c,d],[e,f,g]]
使用javascript
答案 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]);