JavaScript'te Sayının Rakamlarını Kontrol Etme
Diyelim ki bize bir sayı verildi:
javascriptlet num = 12345;
Sayının ilk karakterine erişmeye çalışmak beklenmedik bir davranışa yol açar:
javascriptlet num = 12345;
if (num[0] == 1) {
console.log('+++');
} else {
console.log('---'); // bu çalışır
}
Zaten bildiğiniz gibi, sorun şurada: bir dizenin karakterlerine erişebilirsiniz, ancak bir sayının rakamlarına erişemezsiniz:
javascriptlet num = 12345;
console.log(num[0]); // undefined yazdırır
Sorunu çözmek için sayımızı bir dizgeye dönüştürelim:
javascriptlet num = 12345;
let str = String(num);
if (str[0] == 1) {
console.log('+++'); // bu çalışır
} else {
console.log('---');
}
Yeni bir değişken tanımlamak zorunda değilsiniz,
[0] doğrudan String fonksiyonunun
sonucuna uygulanabilir:
javascriptlet num = 12345;
if (String(num)[0] == 1) {
console.log('doğru'); // 'doğru' yazdırır
} else {
console.log('yanlış');
}
Diyelim ki şimdi ilk rakamın 1 veya
2'ye eşit olup olmadığını kontrol etmek
istiyoruz. İlgili kodu yazalım:
javascriptlet num = 12345;
if (String(num)[0] == 1 || String(num)[0] == 2) {
console.log('+++');
} else {
console.log('---');
}
Bu durumda, String(num)[0] yapısının
iki kez tekrarlanacağı anlamına gelir.
Bu, birincisi, uzun ve ikincisi, optimal değil,
çünkü sayıyı iki kez dizgeye dönüştürüyoruz
- ikinci kez gereksiz oluyor ve program kaynakları
bunun için harcanıyor.
Sorunu düzeltelim:
javascriptlet num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
Bir tamsayı verildi. Bu sayının son rakamının sıfıra eşit olup olmadığını kontrol eden bir koşul yazın.
num değişkeninde bir sayı saklansın.
Sayının çift mi yoksa tek mi olduğunu belirleyin.
Son karakter 0, 2, 4,
6 veya 8'e eşitse sayı çift,
aksi takdirde tek sayı olacaktır.