今天面试遇到了个笔试题,需求是实现字符串方法 split,笔试时候不能调试,没有考虑到符号参有可能是多个字符串形式被面试官嘲讽写的烂pass掉了.回来调试一番,代码如下 (十分简洁,分段逐个理解即可)
const str = "11&&22&&33";
const str1='111'
const str2='11&&&&'
function strSplit(str, stp) {
const arr = [];
if (str.indexOf(stp) > -1) {
arr.push(str.slice(0, str.indexOf(stp)));
str = str.slice(str.indexOf(stp) + stp.length);
// console.log(arr,str);
if (str.indexOf(stp) > -1) {
arr.push(...strSplit(str, stp));
} else {
arr.push(str);
}
} else {
arr.push(str);
}
return arr.filter(ii=>ii)
}
console.log("结果", strSplit(str, "&&"));
有其他实现方案的欢迎讨论....后续我有其他方案也会贴代码到评论区