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

JavaScript-এ অক্ষরকে আಲফাবেটিক পজিশনে রূপান্তর করা

ভূমিকা

এই আর্টিকেলে একটি ফাংশন তৈরি করা হয়েছে যা একটি স্ট্রিং নেয়, সেটি ট্রিম করে, লোয়ারকেসে রূপান্তর করে, এবং প্রতিটি অক্ষরের আলফাবেটিক পজিশন (a=1, b=2, ..., z=26) দিয়ে একটি নম্বর অ্যারে রিটার্ন করে। স্পেস এবং বিশেষ ক্যারেক্টার বাদ দেওয়া হয়।

সম্পূর্ণ কোড

const str = 'Hello world!';

const mapString = (str) => {
  const mappedArray = [];
  str
    .trim()
    .toLowerCase()
    .split("")
    .forEach(char => {
      const ascii = char.charCodeAt();
      if (ascii >= 97 && ascii <= 122) { // a-z ASCII রেঞ্জ
        mappedArray.push(ascii - 96);    // a=97, তাই 97-96=1
      }
    });
  return mappedArray;
};

console.log(mapString(str));
// আউটপুট: [8, 5, 12, 12, 15, 23, 15, 18, 12, 4]

কোড ব্যাখ্যা

  1. trim() - মুখ ও পুঁড়ের স্পেস সরায়
  2. toLowerCase() - সব অক্ষর ছোট হাতের করতে
  3. split("") - স্ট্রিংকে ক্যারেক্টার অ্যারেতে ভাগ করে
  4. forEach - প্রতিটি ক্যারেক্টার প্রসেস করে
  5. charCodeAt() - ASCII ভ্যালু পায়
  6. শর্ত (97-122) - শুধু a-z (ASCII 97-122) গ্রহণ করে
  7. ascii - 96 - a=1, b=2, ..., z=26 পাওয়ার সূত্র

আউটপুট

[8, 5, 12, 12, 15, 23, 15, 18, 12, 4]
// h=8, e=5, l=12, l=12, o=15, w=23, o=15, r=18, l=12, d=4

বিকল্প ও আধুনিক পদ্ধতিগুলো

১. Map + Filter (ফাংশনাল স্টাইল)

const mapString = str => 
  [...str.trim().toLowerCase()]
    .filter(c => c >= 'a' && c <= 'z')
    .map(c => c.charCodeAt(0) - 96);

২. Reduce (একটি লুপ)

const mapString = str => 
  [...str.trim().toLowerCase()]
    .reduce((acc, c) => {
      const code = c.charCodeAt(0);
      if (code >= 97 && code <= 122) acc.push(code - 96);
      return acc;
    }, []);

৩. Regex + Map

const mapString = str => 
  (str.toLowerCase().match(/[a-z]/g) || [])
    .map(c => c.charCodeAt(0) - 96);

আলফাবেট পজিশন রেফারেন্স

অক্ষরপজিশনASCII অক্ষরপজিশনASCII
a197n14110
b298o15111
c399p16112
d4100q17113
e5101r18114
f6102s19115
g7103t20116
h8104u21117
i9105v22118
j10106w23119
k11107x24120
l12108y25121
m13109z26122

ব্যবহারিক অ্যাপ্লিকেশন

  • সিপহার/এনক্রিপশন: সিজার সিপহার, ROT13 ইত্যাদি
  • টেক্সট অ্যানালাইসিস: লেটার ফ্রিকোয়েন্সি গণনা
  • গেম ডেভেলপমেন্ট: ওয়ার্ড গেম, পাজল
  • সর্টিং: অ্যালফাবেটিক্যাল সর্টিংয়ে সাহায্য

সারাংশ

ASCII ভ্যালু ব্যবহার করে সহজে অক্ষরকে সংখ্যাগুলোতে রূপান্তর করা যায়। charCodeAt() - 96 সূত্রটি ছোট হাতের অক্ষরের জন্য কাজ করে। বড় হাতের জন্য - 64 ব্যবহার করুন।

  1. জাভাস্ক্রিপ্টে স্ট্রিং-এ একাধিক ক্যারেক্টারকে এস্টারিস্ক দিয়ে রিপ্লেস করা

  2. জাভাস্ক্রিপ্টে লেটারকে পরের অ্যালফাবেট দিয়ে সোয়াপ করা

  3. জাভাস্ক্রিপ্টে অ্যালফাবেটকে nth পরের অ্যালফাবেটে প্রতিস্থাপন করা

  4. জাভাস্ক্রিপ্টে নির্দিষ্ট অক্ষরে শুরু হওয়া শব্দ খুঁজে বের করা