জাভাস্ক্রিপ্টে সংখ্যার অঙ্ক পরীক্ষা করা
ধরা যাক আমাদের একটি সংখ্যা দেওয়া আছে:
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('---');
}
একটি পূর্ণসংখ্যা দেওয়া আছে। একটি শর্ত লিখুন যা পরীক্ষা করবে যে এই সংখ্যার শেষ অঙ্কটি শূন্যের সমান কিনা।
ধরি num ভেরিয়েবলে একটি সংখ্যা সংরক্ষিত আছে।
নির্ণয় করুন, সংখ্যাটি জোড় নাকি বিজোড়। সংখ্যাটি
জোড় হবে যদি শেষ অঙ্কটি 0,
2, 4, 6 বা 8
এর সমান হয়, এবং অন্যথায় বিজোড় হবে।