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