【发布时间】:2018-08-02 00:07:34
【问题描述】:
如何实现一个拆分字符串的函数,可以递归地拆分字符串内的字符串?它应该是这样的:
返回一个0d数组(原始字符串):
var arr=mySplit('a',[]);
//arr='a'
返回一维数组:
var arr=mySplit('a|b',['|']);
//arr=['a','b']
返回一个二维数组:
var arr=mySplit('a,1|b,2',['|',',']);
//arr=[['a','1'],['b','2']]
返回一个 3D 数组:
var arr=mySplit('a:A,1:One|b:B,2:Two',['|',',',':']);
//arr=[[['a','A'],['1','One']],[['b','B'],['2','Two']]]
我尝试从 0d 到 2d 分别实现:
0D:
var split0d=function(str,sep){
return str;
}
document.write(split0d('a',[]));
一维:
var split1d=function(str,sep){
let result=[];
result=str.split(sep[0]);
return result;
}
document.write(split1d('a|b',['|']));
二维:
var split2d=function(str,sep){
let result=[];
let arr1=str.split(sep[0]);
for(let i=0;i<arr1.length;i++){
result.push(arr1[i].split(sep[1]));
}
return result;
}
document.write(split2d('a,1|b,2|c,3',['|',',']));
但我仍然不知道如何实现这个问题的一般解决方案,因为 0D 到 2D 的代码对我来说看起来非常不同。如何实现递归拆分字符串内部字符串的一般解决方案?
【问题讨论】:
-
发布上述每种情况的预期结果数组
标签: javascript string algorithm multidimensional-array