我需要用我自己的方式实现. split方法,而不使用预建函数,该方法应该接收一个用点分成2个句子的字符串,并通过分隔符将它们分开,例如,有这样一个字符串:'单词伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔伍尔'.'结果应为:["字呜啦呜啦呜啦","呜啦呜啦呜啦呜啦呜啦呜啦呜啦"]
我自己尝试过实现,遇到的第一个问题是字符串中的单词被逐字符添加到新的数组中,第二个问题是输出仍然是字符串,尽管我之前声明了一个数组。
function split(str, splitter){
let arrSent = []
for (let i = 0; i < str.length; i++){
if (str[i] != splitter){
arrSent += str[i]
}
}
return arrSent
}
console.log(split('word wooord wooooooooord wooooooord. wooooooooord woooooord woooord wooooooooord', '. '))
1条答案
按热度按时间zzlelutf1#
由于分隔符可以包含多个字符,因此您需要系统预先收集***样本***字符(与分隔符长度相同),然后与分隔符进行比较:
上面,
idx
(从0
开始)被用作输出的arr
插入指针。如果sample
与delimiter
匹配,idx
将递增。此外,如果匹配,我们需要跳过i += len
迭代,以便不在输出数组中包含分隔符。为了进行测试,创建许多示例,并在
return arr;
之前使用console.log(JSON.stringify(arr) === JSON.stringify(str.split(delimiter)));
-它应该为所有提交的测试返回true
。