Verificarea cifrelor unui număr în JavaScript

Să presupunem că avem numărul:

javascriptlet num = 12345;

Încercarea de a accesa primul caracter al numărului va duce la un comportament neașteptat:

javascriptlet num = 12345;

if (num[0] == 1) {
  console.log('+++');
} else {
  console.log('---'); // acesta se va executa
}

După cum probabil știți deja, problema este că puteți accesa caracterele unui șir de caractere, dar nu și cifrele unui număr:

javascriptlet num = 12345;
console.log(num[0]); // va afișa undefined

Pentru a rezolva problema, să convertim numărul nostru într-un șir de caractere:

javascriptlet num = 12345;
let str = String(num);

if (str[0] == 1) {
  console.log('+++'); // acesta se va executa
} else {
  console.log('---');
}

Nu este necesar să introduceți o nouă variabilă, puteți aplica [0] direct rezultatului funcției String:

javascriptlet num = 12345;

if (String(num)[0] == 1) {
  console.log('corect'); // va afișa 'corect'
} else {
  console.log('incorect');
}

Să presupunem acum că vrem să verificăm dacă prima cifră este egală cu 1, sau 2. Să scriem codul corespunzător:

javascriptlet num = 12345;

if (String(num)[0] == 1 || String(num)[0] == 2) {
  console.log('+++');
} else {
  console.log('---');
}

În acest caz, construcția String(num)[0] se repetă de două ori. Aceasta este, în primul rând, lungă, iar în al doilea rând, nu este optimă, deoarece convertim numărul în șir de două ori - a doua oară este redundant, iar resursele programului sunt irosite.

Să remediem problema:

javascriptlet num = 12345;
let first = String(num)[0];

if (first == 1 || first == 2) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

Se dă un număr întreg. Scrieți o condiție care verifică dacă ultima cifră a acestui număr este egală cu zero.

Задание 2

Să presupunem că variabila num stochează un număr. Determinați dacă numărul este par sau impar. Numărul va fi par dacă ultimul caracter este egal cu 0, 2, 4, 6 sau 8, și impar în caz contrar.