JavaScript-编写字符串函数来替换字符的第k个外观
假设我们需要编写一个包含三个参数的String.prototype函数。
第一个参数是应搜索子字符串的字符串
第二个参数是字符串,要删除的字符串的出现
第三个参数是一个数字,例如n,表示要从字符串中删除的子字符串的第n个。
如果成功从字符串中删除subStr,该函数应返回新字符串,否则在所有情况下均应返回-1。
示例
以下是代码-
const str = 'jkdsttjkdsre';
const subStr = 'jk';
const num = 2;
removeStr = function(subStr, num){
if(!this.includes(subStr)){
return -1;
}
let start = 0, end = subStr.length;
let occurences = 0;
for(; ;end < this.length){
if(this.substring(start, end) === subStr){
occurences++;
};
if(occurences === num){
return this.substring(0, start) + this.substring(end,this.length);
};
end++;
start++;
}
}
String.prototype.removeStr = removeStr;
console.log(str.removeStr(subStr, num));此函数首先检查:如果什至没有出现subStr,那么我们应该退出并返回-1
然后它使用滑动窗口算法记录字符串中subStr的出现次数(窗口大小等于subStr的长度)
最初,我们从最左边的窗口开始,然后继续滑动窗口,直到窗口末尾到达原始字符串的末尾。如果按照我们的方式,出现次数等于所需的出现次数,则我们从字符串中修剪该出现次数并返回由此获得的新字符串。
如果我们遍历整个字符串,则意味着字符串中没有足够的subStr出现,在这种情况下,我们应该返回-1并退出该函数。
最后,我们将removeStr属性添加到String.prototype,以便我们可以将其作为字符串函数来调用。
输出结果
这将在控制台中产生以下输出-
jkdsttdsre
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语