在javascript中转换数组中的字符串
我有一个这样的字符串,其中第一个值是state,另一个值是它的大写字母,我想使用javascript/jquery在数组中转换这个字符串,并包含字符串之间的空格在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
"[['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函数以更高效的方式迭代循环。