Penyemakan Digit Nombor dalam JavaScript
Katakan kita mempunyai nombor:
javascriptlet num = 12345;
Cubaan untuk mengakses aksara pertama nombor akan menyebabkan tingkah laku yang tidak dijangka:
javascriptlet 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:
javascriptlet num = 12345;
console.log(num[0]); // akan memaparkan undefined
Untuk menyelesaikan masalah, tukar nombor kita kepada string:
javascriptlet 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:
javascriptlet 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:
javascriptlet 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:
javascriptlet 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.