将字符串转换为数组数组,Javascript
我有一个字符串,看起来像这样:将字符串转换为数组数组,Javascript,javascript,arrays,Javascript,Arrays,我有一个字符串,看起来像这样: [ [a,b,c],[a,b,c],[a,b,c] ] 我想把它改成一个数组。 你知道怎么做吗?如果你的字符串是有效的JSON数组,你可以使用JSON.parse: 如果您的字符串实际上与以下有效JSON类似: var string = '[["a", "b", "c"], ["a", "b", "c"], ["a", "b", "c"]]'; 那你就可以了 console.log(JSON.parse(string)); [a,b,c],[a,b,c],[
[ [a,b,c],[a,b,c],[a,b,c] ]
我想把它改成一个数组。
你知道怎么做吗?如果你的字符串是有效的JSON数组,你可以使用JSON.parse:
如果您的字符串实际上与以下有效JSON类似:
var string = '[["a", "b", "c"], ["a", "b", "c"], ["a", "b", "c"]]';
那你就可以了
console.log(JSON.parse(string));
[a,b,c],[a,b,c],[a,b,c]]
与
因为它不是有效的JSON,并且没有定义a、b、c,所以您可以做的事情不多。您必须对字符串进行更多的处理,以使其至少成为有效的JSON。好的,您可以尝试在[-chars上拆分它,而忽略]-字符
var str = "[[a,b,c],[a,b,c],[a,b,c]]"
var splitted = str.split("[");
var outerArray = [];
for(var i in splitted){
var token = splitted[i].replace(/]/g, "");
if(token.length > 0){
var innerArray = token.split(",");
if (innerArray.length > 0)
outerArray.push(innerArray);
}
}
这绝对不是优雅的,并且可能由于未处理的空白或空字符串而容易出错。但这可能是一种方法…你引用的不是字符串。请引用您的实际输入数据。并将您的代码显示在您尝试转换它的位置。引用的字符串不是有效的JSON。我已经进行了操作,现在我的变量看起来像这样:[[a,b,c],[a,b,c],[a,b,c]]但是当我尝试执行console.logJSON.parsestring;我得到一个语法错误。你们知道Internet Exploler 11支持此评论吗?请打开此jsbin,粘贴字符串,并报告控制台上的内容:
var string = "[[a,b,c],[a,b,c],[a,b,c]]";
var str = "[[a,b,c],[a,b,c],[a,b,c]]"
var splitted = str.split("[");
var outerArray = [];
for(var i in splitted){
var token = splitted[i].replace(/]/g, "");
if(token.length > 0){
var innerArray = token.split(",");
if (innerArray.length > 0)
outerArray.push(innerArray);
}
}