Проверка на цифрите на број во 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,
и непарен во спротивно.