জাভাস্ক্রিপ্টে সংখ্যার অঙ্ক পরীক্ষা করা

ধরা যাক আমাদের একটি সংখ্যা দেওয়া আছে:

javascriptlet num = 12345;

সংখ্যার প্রথম অঙ্কে অ্যাক্সেস করার চেষ্টা অপ্রত্যাশিত আচরণের দিকে নিয়ে যাবে:

javascriptlet num = 12345;

if (num[0] == 1) {
  console.log('+++');
} else {
  console.log('---'); // এটি কার্যকর হবে
}

আপনি ইতিমধ্যেই জানেন, সমস্যাটি হল স্ট্রিং এর অক্ষরে অ্যাক্সেস করা যায়, কিন্তু সংখ্যার অঙ্কে অ্যাক্সেস করা যায় না:

javascriptlet num = 12345;
console.log(num[0]); // undefined 출력 করবে

সমস্যা সমাধানের জন্য আমাদের সংখ্যাটিকে স্ট্রিং এ রূপান্তরিত করি:

javascriptlet num = 12345;
let str = String(num);

if (str[0] == 1) {
  console.log('+++'); // এটি কার্যকর হবে
} else {
  console.log('---');
}

একটি নতুন ভেরিয়েবল প্রবর্তনের প্রয়োজন নেই, সরাসরি String ফাংশনের ফলাফলে [0] প্রয়োগ করা যেতে পারে:

javascriptlet num = 12345;

if (String(num)[0] == 1) {
  console.log('সঠিক'); // 'সঠিক' 출력 করবে
} else {
  console.log('ভুল');
}

ধরা যাক এখন আমরা প্রথম অঙ্কটি পরীক্ষা করতে চাই যা 1, অথবা 2 এর সমান কিনা। সংশ্লিষ্ট কোড লিখি:

javascriptlet num = 12345;

if (String(num)[0] == 1 || String(num)[0] == 2) {
  console.log('+++');
} else {
  console.log('---');
}

এই ক্ষেত্রে দেখা যাচ্ছে যে কনস্ট্রাকশন String(num)[0] দুবার পুনরাবৃত্তি হয়। এটি, প্রথমত, দীর্ঘ, এবং দ্বিতীয়ত, সর্বোত্তম নয়, কারণ আমরা সংখ্যাটিকে স্ট্রিং এ দুবার রূপান্তর করছি - দ্বিতীয়বারটি অপ্রয়োজনীয় হয়ে যায়, এবং প্রোগ্রামের সম্পদ এতে ব্যয় হয়।

সমস্যা সংশোধন করা যাক:

javascriptlet num = 12345;
let first = String(num)[0];

if (first == 1 || first == 2) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

একটি পূর্ণসংখ্যা দেওয়া আছে। একটি শর্ত লিখুন যা পরীক্ষা করবে যে এই সংখ্যার শেষ অঙ্কটি শূন্যের সমান কিনা।

Задание 2

ধরি num ভেরিয়েবলে একটি সংখ্যা সংরক্ষিত আছে। নির্ণয় করুন, সংখ্যাটি জোড় নাকি বিজোড়। সংখ্যাটি জোড় হবে যদি শেষ অঙ্কটি 0, 2, 4, 6 বা 8 এর সমান হয়, এবং অন্যথায় বিজোড় হবে।