Penyemakan Digit Nombor dalam JavaScript
Katakan kita mempunyai nombor:
let num = 12345;
Cubaan untuk mengakses aksara pertama nombor akan menyebabkan tingkah laku yang tidak dijangka:
let num = 12345;
if (num[0] == 1) {
console.log('+++');
} else {
console.log('---'); // ini yang akan berfungsi
}
Seperti yang anda sudah patut tahu, masalahnya ialah kita boleh mengakses aksara string, tetapi tidak boleh - digit nombor:
let num = 12345;
console.log(num[0]); // akan memaparkan undefined
Untuk menyelesaikan masalah, tukar nombor kita kepada string:
let num = 12345;
let str = String(num);
if (str[0] == 1) {
console.log('+++'); // ini yang akan berfungsi
} else {
console.log('---');
}
Tidak perlu memperkenalkan pembolehubah baru,
boleh gunakan [0] secara terus
kepada hasil fungsi String:
let num = 12345;
if (String(num)[0] == 1) {
console.log('betul'); // akan memaparkan 'betul'
} else {
console.log('tidak betul');
}
Katakan sekarang kita mahu menyemak digit pertama
sama ada ia sama dengan 1, atau 2.
Tulis kod yang sepadan:
let num = 12345;
if (String(num)[0] == 1 || String(num)[0] == 2) {
console.log('+++');
} else {
console.log('---');
}
Dalam kes ini, konstruksi
String(num)[0] diulang dua kali.
Ini, pertama, panjang, dan kedua, tidak optimum,
kerana kita menukar nombor kepada string dua kali
- kali kedua adalah berlebihan, dan sumber
program dibazirkan untuk ini.
Baiki masalah:
let num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
Diberi integer. Tulis syarat yang akan menyemak sama ada digit terakhir nombor ini sama dengan sifar.
Katakan dalam pembolehubah num disimpan nombor.
Tentukan, nombor genap atau tidak. Nombor akan
genap, jika aksara terakhir sama dengan 0,
2, 4, 6 atau 8,
dan ganjil sebaliknya.