Провера цифара броја у JavaScript-у

Претпоставимо да имамо број:

javascriptlet num = 12345;

Покушај приступа првом симблу броја довешће до неочекиваног понашања:

javascriptlet num = 12345;

if (num[0] == 1) {
  console.log('+++');
} else {
  console.log('---'); // ово ће се извршити
}

Како већ треба да знате, проблем је у томе што се може приступати симболима ниске, али не и цифрама броја:

javascriptlet num = 12345;
console.log(num[0]); // исписаће undefined

Да бисмо решили проблем, претворимо наш број у ниску:

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

if (str[0] == 1) {
  console.log('+++'); // ово ће се извршити
} else {
  console.log('---');
}

Није неопходно уводити нову променљиву, можемо применити [0] директно на резултат функције String:

javascriptlet num = 12345;

if (String(num)[0] == 1) {
  console.log('тачно'); // исписаће 'тачно'
} else {
  console.log('нетачно');
}

Претпоставимо сада да желимо да проверимо да ли је прва цифра једнака 1, или 2. Напишимо одговарајући код:

javascriptlet num = 12345;

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

У овом случају испада да се конструкција String(num)[0] понавља два пута. Ово је, прво, дугачко, а друго, није оптимално, јер два пута претварамо број у ниску - други пут је сувишан, а ресурси програма се на то троше.

Исправимо проблем:

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

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

Дат је цео број. Напишите услов који проверава да ли је последња цифра овог броја једнака нули.

Задание 2

Претпоставимо да је у променљивој num сачуван број. Одредите да ли је број паран или непаран. Број ће бити паран ако је последњи симбол једнак 0, 2, 4, 6 или 8, а непаран у супротном.