কম্পিউটার টিউটোরিয়াল

JavaScript-এ স্ট্রিংয়ের প্রতিটি শব্দের শুরুতে ক্যারেক্টার যোগ করা

ভূমিকা

এই আর্টিকেলে একটি ফাংশন লেখা হয়েছে যা একটি স্ট্রিং এবং একটি প্রিফিক্স ক্যারেক্টার/স্ট্রিং নিয়ে, প্রতিটি শব্দের শুরুতে সেই প্রিফিক্স যোগ করে দেয়। ডিফল্ট প্রিফিক্স হিসেবে # ব্যবহার করা হয়েছে।

সম্পূর্ণ কোড

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

কোড ব্যাখ্যা

  1. split(" ") - স্ট্রিংকে স্পেস দিয়ে ভাগ করে শব্দগুলোর অ্যারে বানায়
  2. map() - প্রতিটি শব্দের সাথে প্রিফিক্স जोড়ে নতুন অ্যারে বানায়
  3. join(" ") - অ্যারেটিকে আবার স্পেস দিয়ে স্ট্রিংয়ে রূপান্তরিত করে
  4. ডিফল্ট প্যারামিটার: 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) পদ্ধতি। এটি পঠনযোগ্য, ফাংশনাল এবং পারফরম্যান্স-বান্ধব।

  1. জাভাস্ক্রিপ্টে স্ট্রিং কি রিপিটেড সাবস্ট্রিংয়ের কম্বিনেশন সেটি চেক করা

  2. জাভাস্ক্রিপ্টে স্ট্রিংয়ে নির্দিষ্ট অক্ষরের পরের অক্ষর বের করা

  3. জাভাস্ক্রিপ্টে টাইম স্ট্রিং রেক্টিফাই করা (HH:MM:SS)

  4. জাভাতে স্ট্রিং-এর প্রতিটি শব্দের প্রথম অক্ষর প্রিন্ট করা