Memeriksa Digit Angka dalam JavaScript
Misalkan kita diberikan sebuah angka:
let num = 12345;
Upaya untuk mengakses karakter pertama dari angka akan menyebabkan perilaku yang tidak terduga:
let num = 12345;
if (num[0] == 1) {
console.log('+++');
} else {
console.log('---'); // ini yang akan dieksekusi
}
Seperti yang sudah Anda ketahui, masalahnya adalah kita dapat mengakses karakter string, tetapi tidak bisa - digit angka:
let num = 12345;
console.log(num[0]); // akan menampilkan undefined
Untuk menyelesaikan masalah ini, mari ubah angka kita menjadi string:
let num = 12345;
let str = String(num);
if (str[0] == 1) {
console.log('+++'); // ini yang akan dieksekusi
} else {
console.log('---');
}
Tidak perlu membuat variabel baru,
kita dapat menerapkan [0] secara langsung
pada hasil fungsi String:
let num = 12345;
if (String(num)[0] == 1) {
console.log('benar'); // akan menampilkan 'benar'
} else {
console.log('salah');
}
Sekarang misalkan kita ingin memeriksa apakah digit pertama
sama dengan 1, atau 2.
Tulis kode yang sesuai:
let num = 12345;
if (String(num)[0] == 1 || String(num)[0] == 2) {
console.log('+++');
} else {
console.log('---');
}
Dalam kasus ini, konstruksi
String(num)[0] diulang dua kali.
Ini, pertama, panjang, dan kedua, tidak optimal,
karena kita mengubah angka menjadi string dua kali
- yang kedua kali menjadi berlebihan, dan sumber daya
program terbuang untuk itu.
Mari perbaiki masalahnya:
let num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
Diberikan sebuah bilangan bulat. Tuliskan kondisi yang akan memeriksa apakah digit terakhir dari angka ini sama dengan nol.
Misalkan dalam variabel num disimpan sebuah angka.
Tentukan, apakah angka tersebut genap atau tidak. Angka akan
genap jika karakter terakhir sama dengan 0,
2, 4, 6 atau 8,
dan ganjil jika sebaliknya.