জাভাস্ক্রিপ্টে সংখ্যার অঙ্ক পরীক্ষা করা
ধরা যাক আমাদের একটি সংখ্যা দেওয়া আছে:
let num = 12345;
সংখ্যার প্রথম অঙ্কে অ্যাক্সেস করার চেষ্টা অপ্রত্যাশিত আচরণের দিকে নিয়ে যাবে:
let num = 12345;
if (num[0] == 1) {
console.log('+++');
} else {
console.log('---'); // এটি কার্যকর হবে
}
আপনি ইতিমধ্যেই জানেন, সমস্যাটি হল স্ট্রিং এর অক্ষরে অ্যাক্সেস করা যায়, কিন্তু সংখ্যার অঙ্কে অ্যাক্সেস করা যায় না:
let num = 12345;
console.log(num[0]); // undefined 출력 করবে
সমস্যা সমাধানের জন্য আমাদের সংখ্যাটিকে স্ট্রিং এ রূপান্তরিত করি:
let num = 12345;
let str = String(num);
if (str[0] == 1) {
console.log('+++'); // এটি কার্যকর হবে
} else {
console.log('---');
}
একটি নতুন ভেরিয়েবল প্রবর্তনের প্রয়োজন নেই,
সরাসরি String ফাংশনের ফলাফলে
[0] প্রয়োগ করা যেতে পারে:
let num = 12345;
if (String(num)[0] == 1) {
console.log('সঠিক'); // 'সঠিক' 출력 করবে
} else {
console.log('ভুল');
}
ধরা যাক এখন আমরা প্রথম অঙ্কটি পরীক্ষা করতে চাই
যা 1, অথবা 2 এর সমান কিনা।
সংশ্লিষ্ট কোড লিখি:
let num = 12345;
if (String(num)[0] == 1 || String(num)[0] == 2) {
console.log('+++');
} else {
console.log('---');
}
এই ক্ষেত্রে দেখা যাচ্ছে যে কনস্ট্রাকশন
String(num)[0] দুবার পুনরাবৃত্তি হয়।
এটি, প্রথমত, দীর্ঘ, এবং দ্বিতীয়ত, সর্বোত্তম নয়,
কারণ আমরা সংখ্যাটিকে স্ট্রিং এ দুবার রূপান্তর করছি
- দ্বিতীয়বারটি অপ্রয়োজনীয় হয়ে যায়, এবং প্রোগ্রামের
সম্পদ এতে ব্যয় হয়।
সমস্যা সংশোধন করা যাক:
let num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
একটি পূর্ণসংখ্যা দেওয়া আছে। একটি শর্ত লিখুন যা পরীক্ষা করবে যে এই সংখ্যার শেষ অঙ্কটি শূন্যের সমান কিনা।
ধরি num ভেরিয়েবলে একটি সংখ্যা সংরক্ষিত আছে।
নির্ণয় করুন, সংখ্যাটি জোড় নাকি বিজোড়। সংখ্যাটি
জোড় হবে যদি শেষ অঙ্কটি 0,
2, 4, 6 বা 8
এর সমান হয়, এবং অন্যথায় বিজোড় হবে।