Provera cifara broja u JavaScript-u
Pretpostavimo da imamo broj:
let num = 12345;
Pokušaj da se pristupi prvom karakteru broja dovešće do neočekivanog ponašanja:
let 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:
let num = 12345;
console.log(num[0]); // ispisaće undefined
Da bismo rešili problem, transformišimo naš broj u string:
let 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:
let 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:
let 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:
let num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
Dat je ceo broj. Napišite uslov koji proverava da li je poslednja cifra ovog broja jednaka nuli.
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.