Provera cifara broja u JavaScript-u

Pretpostavimo da imamo broj:

javascriptlet num = 12345;

Pokušaj da se pristupi prvom karakteru broja dovešće do neočekivanog ponašanja:

javascriptlet num = 12345;

if (num[0] == 1) {
  console.log('+++');
} else {
  console.log('---'); // ovo će se izvršiti
}

Kao što već treba da znate, problem je u tome što se može pristupati karakterima stringa, ali ne može - ciframa broja:

javascriptlet num = 12345;
console.log(num[0]); // ispisaće undefined

Da bismo rešili problem, transformišimo naš broj u string:

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

if (str[0] == 1) {
  console.log('+++'); // ovo će se izvršiti
} else {
  console.log('---');
}

Nije neophodno uvoditi novu promenljivu, možete primeniti [0] direktno na rezultat funkcije String:

javascriptlet num = 12345;

if (String(num)[0] == 1) {
  console.log('tačno'); // ispisaće 'tačno'
} else {
  console.log('netačno');
}

Pretpostavimo sada da želimo da proverimo da li je prva cifra jednaka 1, ili 2. Napišimo odgovarajući kod:

javascriptlet num = 12345;

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

U ovom slučaju ispada da će se konstrukcija String(num)[0] ponoviti dva puta. Ovo je, prvo, dugačko, a drugo, nije optimalno, pošto dva puta transformišemo broj u string - drugi put ispada suvišan, a resursi programa se troše na to.

Ispravimo problem:

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

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

Dat je ceo broj. Napišite uslov koji proverava da li je poslednja cifra ovog broja jednaka nuli.

Задание 2

Neka je u promenljivoj num sačuvan broj. Odredite da li je broj paran ili ne. Broj će biti paran ako je poslednji karakter jednak 0, 2, 4, 6 ili 8, i neparan u suprotnom.