Skaitļa ciparu pārbaude JavaScript

Pieņemsim, ka mums ir dots skaitlis:

javascriptlet num = 12345;

Mēģinājums piekļūt skaitļa pirmajam simbolam izraisīs negaidītu rezultātu:

javascriptlet num = 12345;

if (num[0] == 1) {
  console.log('+++');
} else {
  console.log('---'); // izpildīsies šis
}

Kā jau vajadzētu zināt, problēma ir tajā, ka var piekļūt virknes simboliem, bet nevar - skaitļa cipariem:

javascriptlet num = 12345;
console.log(num[0]); // izvadīs undefined

Lai atrisinātu problēmu, pārveidosim mūsu skaitli par virkni:

javascriptlet num = 12345;
let str = String(num);

if (str[0] == 1) {
  console.log('+++'); // izpildīsies šis
} else {
  console.log('---');
}

Nav obligāti jāievieš jauns mainīgais, var izmantot [0] tieši funkcijas String rezultātam:

javascriptlet num = 12345;

if (String(num)[0] == 1) {
  console.log('pareizi'); // izvadīs 'pareizi'
} else {
  console.log('nepareizi');
}

Pieņemsim, ka mēs vēlamies pārbaudīt, vai pirmais cipars ir vienāds ar 1 vai 2. Uzrakstīsim atbilstošo kodu:

javascriptlet num = 12345;

if (String(num)[0] == 1 || String(num)[0] == 2) {
  console.log('+++');
} else {
  console.log('---');
}

Šajā gadījumā iznāk, ka konstrukcija String(num)[0] atkārtojas divas reizes. Tas, pirmkārt, ir garš, un, otrkārt, neoptimāls, jo mēs divas reizes pārveidojam skaitli par virkni - otrā reize izrādās lieka, un programmas resursi tiek tērēti.

Izlabosim problēmu:

javascriptlet num = 12345;
let first = String(num)[0];

if (first == 1 || first == 2) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

Dots vesels skaitlis. Uzrakstiet nosacījumu, kas pārbaudīs, vai šī skaitļa pēdējais cipars ir vienāds ar nulli.

Задание 2

Pieņemsim, ka mainīgajā num ir glabāts skaitlis. Nosakiet, vai skaitlis ir pāra vai nepāra. Skaitlis būs pāra, ja pēdējais cipars ir vienāds ar 0, 2, 4, 6 vai 8, un nepāra pretējā gadījumā.