Kontrola číslic čísla v JavaScripte
Majme dané číslo:
let num = 12345;
Pokus o prístup k prvému znaku čísla povedie k neočakávanému správaniu:
let 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:
let num = 12345;
console.log(num[0]); // vypíše undefined
Na vyriešenie problému pretransformujme naše číslo na reťazec:
let 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:
let 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:
let 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:
let num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
Je dané celé číslo. Napíšte podmienku, ktorá skontroluje, či sa posledná číslica tohto čísla rovná nule.
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.