Verifica delle cifre di un numero in JavaScript

Supponiamo di avere un numero:

javascriptlet num = 12345;

Tentare di accedere al primo carattere del numero porterà a un comportamento inaspettato:

javascriptlet num = 12345;

if (num[0] == 1) {
  console.log('+++');
} else {
  console.log('---'); // questo verrà eseguito
}

Come dovresti già sapere, il problema è che puoi accedere ai caratteri di una stringa, ma non alle cifre di un numero:

javascriptlet num = 12345;
console.log(num[0]); // visualizzerà undefined

Per risolvere il problema, convertiamo il nostro numero in una stringa:

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

if (str[0] == 1) {
  console.log('+++'); // questo verrà eseguito
} else {
  console.log('---');
}

Non è necessario introdurre una nuova variabile, puoi applicare [0] direttamente al risultato della funzione String:

javascriptlet num = 12345;

if (String(num)[0] == 1) {
  console.log('corretto'); // visualizzerà 'corretto'
} else {
  console.log('non corretto');
}

Supponiamo ora di voler verificare se la prima cifra è uguale a 1, oppure a 2. Scriviamo il codice corrispondente:

javascriptlet num = 12345;

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

In questo caso, la costruzione String(num)[0] si ripete due volte. Ciò è, in primo luogo, lungo e, in secondo luogo, non ottimale, poiché convertiamo il numero in stringa due volte - la seconda volta risulta superflua, e le risorse del programma vengono sprecate per questo.

Correggiamo il problema:

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

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

Dato un numero intero. Scrivi una condizione che verifichi se l'ultima cifra di questo numero è uguale a zero.

Задание 2

Supponiamo che nella variabile num sia memorizzato un numero. Determina se il numero è pari o dispari. Il numero sarà pari se l'ultimo carattere è uguale a 0, 2, 4, 6 o 8, e dispari altrimenti.