Javascript 如何使函数处理多个字符串数组?

Javascript 如何使函数处理多个字符串数组?,javascript,arrays,string,Javascript,Arrays,String,我在复制类似json解析的函数方面做了一些家庭作业,目前我编写了一个函数,如下所示: var arr='[a[a,bjng],n]' var intoArray=函数(字符串){ if(string.length逻辑与我上次回答类似问题时的逻辑相同,只是它使用连续字符块而不是单个字符来处理长度超过1的字符串 const string='[a[a,bjng],n]'.slice(1,-1); const chunks=string.match(/\w+|[\[\]|,|]/g); 常量数组=[

我在复制类似json解析的函数方面做了一些家庭作业,目前我编写了一个函数,如下所示:

var arr='[a[a,bjng],n]'
var intoArray=函数(字符串){

if(string.length逻辑与我上次回答类似问题时的逻辑相同,只是它使用连续字符块而不是单个字符来处理长度超过
1
的字符串

const string='[a[a,bjng],n]'.slice(1,-1);
const chunks=string.match(/\w+|[\[\]|,|]/g);
常量数组=[];
设currArr=数组;
for(常量块中的块){
/\w/.test(块)和currArr.push(块);
chunk==']&&(currArr=array);
if(chunk=='['){
currArr=[];
array.push(currArr);
}
}

console.log(array);//['a',['a','bjng'],'n']
@GirkovArpa是一个很好的开始,但正如@Barmar已经提到的:如果你想正确处理任意(更深层的)数组结构,你需要某种递归。下面是我的(初步)看法:

const string='[a,[[d,e[f,g]],bjng],[c],n]';
函数解析(str){
函数add2arr(a,p){var c
do c=p.shift()
while(c&&(/\w/.test(c)&&a.push(c)
||c==','
||c=='['&&a.push(add2arr([],p));
归还
}
const parts=str.replace(/\s*/g,“”).match(/\w+|[\[\],]/g);
if(parts.shift()='[')返回add2arr([],parts);
}
日志(解析(字符串))
//或者更简单:使用JSON.parse:

console.log(JSON.parse(string.replace(/(\w+)/g,“$1”));
您需要研究“递归下降解析”。这不是一项简单的任务,对于初学者来说似乎不是一个合适的任务。这并不复杂。。。