Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Hàm String loại bỏ lần xuất hiện thứ k của chuỗi con - JavaScript

Mở rộng String.prototype thêm removeStr(subStr, n): xóa lần xuất hiện thứ n của subStr trong chuỗi. Trả về chuỗi mới hoặc -1 nếu không tìm thấy.

Ví dụ

Chuỗi: 'jkdsttjkdsre'

SubStr: 'jk', n = 2

Lần 1: vị trí 0, Lần 2: vị trí 6 → xóa lần 2 → 'jkdsttdsre'

Giải pháp

Mã triển khai (sliding window):

const str = 'jkdsttjkdsre';
const subStr = 'jk';
const num = 2;

String.prototype.removeStr = function(subStr, num) {
  if (!this.includes(subStr)) return -1;
  
  let occurrences = 0;
  const len = subStr.length;
  
  for (let i = 0; i <= this.length - len; i++) {
    if (this.substring(i, i + len) === subStr) {
      occurrences++;
      if (occurrences === num) {
        return this.slice(0, i) + this.slice(i + len);
      }
    }
  }
  return -1; // Không đủ n lần
};

console.log(str.removeStr(subStr, num));

Kết quả

Đầu ra trong console:

jkdsttdsre

Lưu ý: Sửa lỗi logic loop vô tận trong code gốc. Cảnh báo: sửa đổi String.prototype không khuyến khích.