建立用於替換字串 JavaScript 中第 n 個出現的 polyfill
假設我們建立了一個名為 removeStr() 的 polyfill 函式,它接收三個引數,即:
subStr → 要刪除的字串的出現次數
num → 它是一個數字 (num),表示要從字串中刪除的 subStr 的第 num 次出現
如果成功從字串中刪除 subStr,則該函式應返回新字串;否則,在所有情況下都應返回 -1。
例如:
const str = 'drsfgdrrtdr';
console.log(str.removeStr('dr', 3));預期輸出:
'drsfgdrrt'
讓我們為此編寫程式碼:
示例
const str = 'drsfgdrrtdr';
const subStr = 'dr';
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++;
}
return -1;
}
String.prototype.removeStr = removeStr;
console.log(str.removeStr(subStr, num));輸出
此程式碼在控制檯中的輸出將是:
drsfgrtdr
理解程式碼:
removeStr() 函式首先檢查 subStr 是否沒有出現,如果確實沒有出現,則應退出並返回 -1。
然後它使用滑動視窗演算法來記錄字串中 subStr 出現的次數(視窗大小等於 subStr 的長度)。
最初,我們從最左邊的視窗開始,然後我們不斷滑動視窗,直到視窗的末尾到達原始字串的末尾。
如果在我們滑動過程中,出現的次數等於所需的次數,我們就會從字串中修剪該出現次數,並返回由此獲得的新字串。
如果我們遍歷整個字串,這意味著字串中沒有足夠的 subStr 出現次數,在這種情況下,我們應該返回 -1 並退出函式。
最後,我們將 removeStr 屬性新增到 String.prototype,以便我們可以將其作為字串函式呼叫。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP