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('---');
}
Задание 1

Diberi integer. Tulis syarat yang akan menyemak sama ada digit terakhir nombor ini sama dengan sifar.

Задание 2

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.