JavaScript-da Son Raqamlarini Tekshirish
Faraz qilaylik, bizga quyidagi son berilgan:
let num = 12345;
Songa birinchi belgi sifatida murojaat qilishga urinish kutilmagan natijaga olib keladi:
let num = 12345;
if (num[0] == 1) {
console.log('+++');
} else {
console.log('---'); // ishlaydi mana bu
}
Siz allaqachon bilishingiz kerak, muammo shundaki, satr belgilariga murojaat qilish mumkin, lekin son raqamlariga - mumkin emas:
let num = 12345;
console.log(num[0]); // undefined chiqaradi
Muammoni hal qilish uchun sonimizni satrga aylantiramiz:
let num = 12345;
let str = String(num);
if (str[0] == 1) {
console.log('+++'); // ishlaydi mana bu
} else {
console.log('---');
}
Yangi o‘zgaruvchi kiritish shart emas,
[0] ni to‘g‘ridan-to‘g‘ri
String funksiyasi natijasiga qo‘llash mumkin:
let num = 12345;
if (String(num)[0] == 1) {
console.log('to‘g‘ri'); // 'to‘g‘ri' chiqaradi
} else {
console.log('noto‘g‘ri');
}
Endi faraz qilaylik, biz birinchi raqamning
1 yoki 2 ga tengligini tekshirmoqchimiz.
Mos kodni yozamiz:
let num = 12345;
if (String(num)[0] == 1 || String(num)[0] == 2) {
console.log('+++');
} else {
console.log('---');
}
Bunday holda, String(num)[0] konstruktsiyasi
ikki marta takrorlanadi. Bu, birinchidan, uzun, ikkinchidan,
nomunosib, chunki biz sonni satrga ikki marta aylantiramiz
- ikkinchi marta ortiqcha bo‘lib chiqadi,
va dastur resurslari buning uchun sarflanadi.
Muammoni tuzatamiz:
let num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
Butun son berilgan. Ushbu sonning oxirgi raqami nolga tengligini tekshiradigan shart yozing.
Faraz qilaylik, num o‘zgaruvchisida son saqlanadi.
Son juft yoki toq ekanligini aniqlang. Son
oxirgi raqami 0, 2, 4, 6
yoki 8 ga teng bo‘lsa juft, aks holda toq
hisoblanadi.