ভূমিকা
এই আর্টিকেলে একটি ফাংশন লেখা হয়েছে যা একটি স্ট্রিং এবং একটি প্রিফিক্স ক্যারেক্টার/স্ট্রিং নিয়ে, প্রতিটি শব্দের শুরুতে সেই প্রিফিক্স যোগ করে দেয়। ডিফল্ট প্রিফিক্স হিসেবে # ব্যবহার করা হয়েছে।
সম্পূর্ণ কোড
const str = 'hello stranger, how are you';
const prependString = (str, text = '#') => {
return str
.split(" ")
.map(word => `${text}${word}`)
.join(" ");
};
console.log(prependString(str)); // #hello #stranger, #how #are #you
console.log(prependString(str, '43')); // 43hello 43stranger, 43how 43are 43you
কোড ব্যাখ্যা
- split(" ") - স্ট্রিংকে স্পেস দিয়ে ভাগ করে শব্দগুলোর অ্যারে বানায়
- map() - প্রতিটি শব্দের সাথে প্রিফিক্স जोড়ে নতুন অ্যারে বানায়
- join(" ") - অ্যারেটিকে আবার স্পেস দিয়ে স্ট্রিংয়ে রূপান্তরিত করে
- ডিফল্ট প্যারামিটার:
text = '#'- দ্বিতীয় আর্গুমেন্ট না দিলে # ব্যবহার হবে
আউটপুট
#hello #stranger, #how #are #you
43hello 43stranger, 43how 43are 43you
উন্নত সংস্করণ (এজ কেস হ্যান্ডলিং)
const prependStringRobust = (str, prefix = '#') => {
if (typeof str !== 'string') return '';
return str
.trim() // 앞/পিছনের স্পেস সরিয়ে
.split(/\s+/) // একাধিক স্পেস হ্যান্ডল (regex)
.filter(word => word.length > 0) // খালি শব্দ বাদ
.map(word => prefix + word)
.join(' ');
};
// টেস্ট
console.log(prependStringRobust(" hello world ")); // "#hello #world"
console.log(prependStringRobust("hello\tworld\nagain")); // "#hello #world #again"
console.log(prependStringRobust("", "@")); // ""
console.log(prependStringRobust(null, "@")); // ""
ব্যবহারিক প্রয়োগ
- হ্যাশট্যাগ জেনারেশন: সোশ্যাল মিডিয়া পোস্টের জন্য
- কোড জেনারেশন: ভেরিয়েবল নামে প্রিফিক্স যোগ
- মার্কডাউন ফরম্যাটিং: বুলেট পয়েন্ট বা হেডার তৈরি
- CSS ক্লাস প্রিফিক্সিং: BEM মেথডোলজি ইত্যাদি
সাম্প্রতিক জাভাস্ক্রিপ্ট ফিচার (ES2021+)
// String.prototype.replaceAll() ব্যবহার করে (ব্রাউজার সাপোর্ট চেক করুন)
const prependAll = (str, prefix = '#') =>
str.replaceAll(' ', ' ' + prefix).replace(/^/, prefix);
// কিন্তু উপরের map পদ্ধতিই বেশি পঠনযোগ্য এবং নিরাপদ
সারাংশ
split() → map() → join() প্যাটার্ন জাভাস্ক্রিপ্টে স্ট্রিং ম্যানিপুলেশনের একটি=idিোম্যাটিক (idiomatic) পদ্ধতি। এটি পঠনযোগ্য, ফাংশনাল এবং পারফরম্যান্স-বান্ধব।