JavaScript-də ədədin rəqəmlərinin yoxlanılması
Tutaq ki, bizə bir ədəd verilib:
let num = 12345;
Ədədin birinci simvoluna müraciət etməyə cəhd gözlənilməz davranışa səbəb olacaq:
let num = 12345;
if (num[0] == 1) {
console.log('+++');
} else {
console.log('---'); // bu işləyəcək
}
Artıq bilməlisiniz ki, problem ondadır ki, sətirin simvollarına müraciət etmək olar, amma ədədin rəqəmlərinə müraciət etmək olmaz:
let num = 12345;
console.log(num[0]); // undefined çap edəcək
Problemi həll etmək üçün ədədimizi sətirə çevirək:
let num = 12345;
let str = String(num);
if (str[0] == 1) {
console.log('+++'); // bu işləyəcək
} else {
console.log('---');
}
Mütləq yeni dəyişən təqdim etmək lazım deyil,
[0] birbaşa String funksiyasının
nəticəsinə tətbiq etmək olar:
let num = 12345;
if (String(num)[0] == 1) {
console.log('dogru'); // 'dogru' çap edəcək
} else {
console.log('yanlis');
}
Tutaq ki, indi biz birinci rəqəmin 1-ə,
ya da 2-ə bərabər olmasını yoxlamaq istəyirik.
Uyğun kodu yazaq:
let num = 12345;
if (String(num)[0] == 1 || String(num)[0] == 2) {
console.log('+++');
} else {
console.log('---');
}
Bu halda alınır ki, String(num)[0] konstruksiyası
iki dəfə təkrar olunur. Bu, birincisi, uzundur, ikincisi isə,
optimal deyil, çünki biz ədədi sətirə iki dəfə çeviririk
- ikinci dəfə artıq olur, amma proqramın resursları
bunun üçün sərf olunur.
Problemi düzəldək:
let num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
Tam ədəd verilib. Bu ədədin son rəqəminin sıfıra bərabər olmasını yoxlayan şərt yazın.
Tutaq ki, num dəyişənində ədəd saxlanılır.
Ədədin cüt olub-olmadığını müəyyən edin. Ədəd
son simvolu 0, 2, 4, 6
ya da 8-ə bərabər olduqda cüt olacaq,
əks halda isə tək olacaq.