Kontrola číslic čísla v JavaScripte

Majme dané číslo:

javascriptlet num = 12345;

Pokus o prístup k prvému znaku čísla povedie k neočakávanému správaniu:

javascriptlet num = 12345;

if (num[0] == 1) {
  console.log('+++');
} else {
  console.log('---'); // spustí sa toto
}

Ako už viete, problém je v tom, že je možné pristupovať k znakom reťazca, ale nie je možné - k čísliciam čísla:

javascriptlet num = 12345;
console.log(num[0]); // vypíše undefined

Na vyriešenie problému pretransformujme naše číslo na reťazec:

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

if (str[0] == 1) {
  console.log('+++'); // spustí sa toto
} else {
  console.log('---');
}

Nie je nevyhnutné zavádzať novú premennú, je možné použiť [0] priamo k výsledku funkcie String:

javascriptlet num = 12345;

if (String(num)[0] == 1) {
  console.log('správne'); // vypíše 'správne'
} else {
  console.log('nesprávne');
}

Majme teraz, že chceme skontrolovať prvú číslicu či sa rovná 1, alebo 2. Napíšme zodpovedajúci kód:

javascriptlet num = 12345;

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

V tomto prípade vychádza, že konštrukcia String(num)[0] sa zopakuje dva krát. Je to, po prvé, dlhé, a po druhé, nie je optimálne, pretože dva krát transformujeme číslo na reťazec - druhý krát je to zbytočné, a zdroje programu sa na to míňajú.

Opravme problém:

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

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

Je dané celé číslo. Napíšte podmienku, ktorá skontroluje, či sa posledná číslica tohto čísla rovná nule.

Задание 2

Majme v premennej num uložené číslo. Určite, či je číslo párne alebo nepárne. Číslo bude párne, ak sa posledný znak rovná 0, 2, 4, 6 alebo 8, a nepárne v opačnom prípade.