Verifica delle cifre di un numero in JavaScript
Supponiamo di avere un numero:
let num = 12345;
Tentare di accedere al primo carattere del numero porterà a un comportamento inaspettato:
let 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:
let num = 12345;
console.log(num[0]); // visualizzerà undefined
Per risolvere il problema, convertiamo il nostro numero in una stringa:
let 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:
let 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:
let 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:
let num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
Dato un numero intero. Scrivi una condizione che verifichi se l'ultima cifra di questo numero è uguale a zero.
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.