ধরা যাক, আমরা একটি পলিফিল ফাংশন removeStr() তৈরি করেছি যা তিনটি আর্গুমেন্ট নেয়, যথা −
-
subStr → যে ঘটনাটির স্ট্রিং অপসারণ করা হবে
-
সংখ্যা → এটি একটি সংখ্যা (সংখ্যা)তম ঘটনাটি স্ট্রিং থেকে সরানো হবে
স্ট্রিং থেকে 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() ফাংশনটি প্রথমে চেক করে যে সাবস্ট্রার্টের একটিও ঘটনা নেই কিনা তারপর আমাদের প্রস্থান করা উচিত এবং ফিরে আসা উচিত -1।
-
তারপর এটি সাবস্ট্রিন স্ট্রিং (উইন্ডোটির আকার সাবস্ট্রিনের দৈর্ঘ্যের সমান) সংখ্যা রেকর্ড করতে স্লাইডিং উইন্ডো অ্যালগরিদম ব্যবহার করে।
-
প্রাথমিকভাবে আমরা বামদিকের উইন্ডো থেকে শুরু করি তারপর উইন্ডোর শেষ পর্যন্ত আসল স্ট্রিংয়ের শেষ না হওয়া পর্যন্ত আমরা আমাদের উইন্ডো স্লাইড করতে থাকি।
-
যদি আমাদের উপায়ে, ঘটনার সংখ্যা প্রয়োজনীয় ঘটনার সমান হয়, তাহলে আমরা স্ট্রিং থেকে সেই ঘটনাটিকে ছেঁটে ফেলি এবং এইভাবে প্রাপ্ত নতুন স্ট্রিংটি ফিরিয়ে দিই৷
-
যদি আমরা পুরো স্ট্রিং দিয়ে পুনরাবৃত্তি করি, তাহলে এর মানে হল যে স্ট্রিং-এ subStr-এর পর্যাপ্ত ঘটনা নেই এবং সেক্ষেত্রে আমাদের -1 ফিরে আসা উচিত এবং ফাংশন থেকে প্রস্থান করা উচিত
অবশেষে, আমরা স্ট্রিং.প্রোটোটাইপ-এ removeStr প্রপার্টি যোগ করি যাতে আমরা এটিকে স্ট্রিং ফাংশন হিসেবে বলতে পারি।