在javascript中转换数组中的字符串

在javascript中转换数组中的字符串,javascript,jquery,Javascript,Jquery,我有一个这样的字符串,其中第一个值是state,另一个值是它的大写字母,我想使用javascript/jquery在数组中转换这个字符串,并包含字符串之间的空格 "[['Congo' , '"Candice Levy"'],['Panama' , '"Xerxes Smith"'],['Tanzania' , '"Levi Douglas"'],['africa' , '"Uriel Benton"'],['Gabon' , '"Celeste Pugh"'],['Syrian' , '"Van

我有一个这样的字符串,其中第一个值是state,另一个值是它的大写字母,我想使用javascript/jquery在数组中转换这个字符串,并包含字符串之间的空格

"[['Congo' , '"Candice Levy"'],['Panama' , '"Xerxes Smith"'],['Tanzania' , '"Levi Douglas"'],['africa' , '"Uriel Benton"'],['Gabon' , '"Celeste Pugh"'],['Syrian' , '"Vance Campos"'],['Kyrgyzstan' , '"Wanda Garza"']]
我的预期产出是这样的

arr[0]= Congo
arr[1]= Candice Levy
arr[2]= Panama
arr[3]=Xerxes Smith
我看到过这样的例子,但没有得到满意的答案。请帮助编辑:*感谢的评论

var str=“[[刚果]、[Candice Levy\”]、[巴拿马]、[Xerxes Smith\”]、[坦桑尼亚]、[Levi Douglas\”]、[africa'、[Uriel Benton\”]、[Gabon'、[Celeste Pugh\”]、[Syrian'、[Vance Campos\”]、[吉尔吉斯斯坦]、[Wanda Garza\”];
var str=str.replace(/“/g,”).replace(/“/g,”);
var arr=JSON.parse(str);
合并的var=[].concat.apply([],arr);
console.log(合并)我的理解是:
您有一个类似于您提供的字符串。您希望将其转换为问题(已编辑)中提到的数组。这就是工作:

function showInput(){
    var str = "\"[['Congo' , '\"Candice Levy\"'],['Panama' , '\"Xerxes Smith\"'],['Tanzania' , '\"Levi Douglas\"'],['africa' , '\"Uriel Benton\"'],['Gabon' , '\"Celeste Pugh\"'],['Syrian' , '\"Vance Campos\"'],['Kyrgyzstan' , '\"Wanda Garza\"']]";
    var res = str.split(",");
    var array = [];
    for (var i=0; i<res.length; i = i + 2){
        array[i] = res[i].substring(res[i].indexOf("'")+1,res[i].lastIndexOf("'"));
        array[i+1] = res[i+1].substring(res[i+1].indexOf('"')+1,res[i+1].lastIndexOf('"'));
    }
    //array variable has what you require
    alert(array.join());
}
函数showInput(){
var str=“\”[[“刚果”,“坎迪斯·列维”,“巴拿马”,“薛西斯·史密斯”,“坦桑尼亚”,“列维·道格拉斯”,“非洲”,“乌里尔·本顿”,“加蓬”,“塞莱斯特·普赫”,“叙利亚”,“万斯·坎波斯”,“吉尔吉斯斯坦”,“万达·加尔萨]”];
var res=str.split(“,”);
var数组=[];

对于(var i=0;i,以下是使用字符串拆分的示例:

“严格使用”;
var s=“['刚果',''坎迪斯·列维',['巴拿马','薛西斯·史密斯',['坦桑尼亚','列维·道格拉斯',['非洲','乌列尔·本顿',['加蓬','塞莱斯特·普赫',['叙利亚','万斯·坎波斯',['吉尔吉斯斯坦','万达·加尔萨'];
var arr=s.split(/]\s*,\s*\[/);
var resultar=[];
用于(arr中的var i){
var stateAndCap=arr[i];
var stateandcapar=stateAndCap.split(/\s*,\s*/);
var state=stateAndCapArr[0]。拆分('\'')[1];
var cap=stateAndCapArr[1]。拆分(“”)[1];
结果推送(状态);
结果推(盖);
}

log(resultar);
您可以使用正则表达式将“[,]”,\”替换为“”,然后使用split方法替换结果

var obj = [
    [
        "Congo",
        "\"Candice Levy\""
    ],
    [
        "Panama",
        "\"Xerxes Smith\""
    ],
    [
        "Tanzania",
        "\"Levi Douglas\""
    ],
    [
        "africa",
        "\"Uriel Benton\""
    ],
    [
        "Gabon",
        "\"Celeste Pugh\""
    ],
    [
        "Syrian",
        "\"Vance Campos\""
    ],
    [
        "Kyrgyzstan",
        "\"Wanda Garza\""
    ]
];
var expectVal = JSON.stringify(obj).replace(/[\\\"\[\]]/g, '').split(",");

我们可以通过使用逗号运算符拆分整个字符串,然后从每个字符串中删除不需要的符号来解决此问题

    var str = "[['Congo' , '\"Candice Levy\"'],['Panama' , '\"Xerxes Smith\"']]";
    var stringArray = str.split(",");
    var result = [];
    for(var i = 0; i < stringArray.length; i++){ 
        result[i] = stringArray[i].replace(/[^a-z0-9\s]/gi,'').trim(); 
    }
    console.log(result);
var str=“[['Congo','\'Candice Levy\'],['Panama','\'Xerxes Smith\']]”;
var stringArray=str.split(“,”);
var结果=[];
对于(var i=0;i
您已经共享了输入数组,请同时提供预期的输出数组。您的意思是想将字符串转换为数组吗?@RaxWeber:是的,我想将字符串转换为数组您的输入实际上是二维数组的json字符串,您想将其转换为一维数组,对吗?请注意,OP需要将字符串转换为数组。因此需要首先生成代码段中的
arr
对象:)以避免forloop使用map函数以更高效的方式迭代循环。