Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串转换为数组数组,Javascript_Javascript_Arrays - Fatal编程技术网

将字符串转换为数组数组,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);
    }
}