ধরা যাক, আমরা একটি পলিফিল ফাংশন 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 প্রপার্টি যোগ করি যাতে আমরা এটিকে স্ট্রিং ফাংশন হিসেবে বলতে পারি।