Провера цифара броја у JavaScript-у
Претпоставимо да имамо број:
let num = 12345;
Покушај приступа првом симблу броја довешће до неочекиваног понашања:
let num = 12345;
if (num[0] == 1) {
console.log('+++');
} else {
console.log('---'); // ово ће се извршити
}
Како већ треба да знате, проблем је у томе што се може приступати симболима ниске, али не и цифрама броја:
let num = 12345;
console.log(num[0]); // исписаће undefined
Да бисмо решили проблем, претворимо наш број у ниску:
let num = 12345;
let str = String(num);
if (str[0] == 1) {
console.log('+++'); // ово ће се извршити
} else {
console.log('---');
}
Није неопходно уводити нову променљиву,
можемо применити [0] директно
на резултат функције String:
let num = 12345;
if (String(num)[0] == 1) {
console.log('тачно'); // исписаће 'тачно'
} else {
console.log('нетачно');
}
Претпоставимо сада да желимо да проверимо да ли је прва цифра
једнака 1, или 2.
Напишимо одговарајући код:
let num = 12345;
if (String(num)[0] == 1 || String(num)[0] == 2) {
console.log('+++');
} else {
console.log('---');
}
У овом случају испада да се конструкција
String(num)[0] понавља два пута.
Ово је, прво, дугачко, а друго, није оптимално,
јер два пута претварамо број у ниску
- други пут је сувишан, а ресурси
програма се на то троше.
Исправимо проблем:
let num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
Дат је цео број. Напишите услов који проверава да ли је последња цифра овог броја једнака нули.
Претпоставимо да је у променљивој num сачуван број.
Одредите да ли је број паран или непаран. Број ће бити
паран ако је последњи симбол једнак 0,
2, 4, 6 или 8,
а непаран у супротном.