Verificación de dígitos de un número en JavaScript
Supongamos que tenemos un número:
let num = 12345;
Intentar acceder al primer carácter del número conducirá a un comportamiento inesperado:
let num = 12345;
if (num[0] == 1) {
console.log('+++');
} else {
console.log('---'); // esto se ejecutará
}
Como ya debes saber, el problema es que puedes acceder a los caracteres de una cadena, pero no a los dígitos de un número:
let num = 12345;
console.log(num[0]); // mostrará undefined
Para resolver el problema, convirtamos nuestro número a cadena:
let num = 12345;
let str = String(num);
if (str[0] == 1) {
console.log('+++'); // esto se ejecutará
} else {
console.log('---');
}
No es necesario introducir una nueva variable,
se puede aplicar [0] directamente
al resultado de la función String:
let num = 12345;
if (String(num)[0] == 1) {
console.log('correcto'); // mostrará 'correcto'
} else {
console.log('incorrecto');
}
Supongamos ahora que queremos verificar si el primer dígito
es igual a 1, o a 2.
Escribamos el código correspondiente:
let num = 12345;
if (String(num)[0] == 1 || String(num)[0] == 2) {
console.log('+++');
} else {
console.log('---');
}
En este caso, resulta que la construcción
String(num)[0] se repite dos veces.
Esto, en primer lugar, es largo, y en segundo lugar, no es óptimo,
ya que convertimos el número a cadena dos veces
- la segunda vez resulta redundante, y los recursos
del programa se gastan en ello.
Arreglemos el problema:
let num = 12345;
let first = String(num)[0];
if (first == 1 || first == 2) {
console.log('+++');
} else {
console.log('---');
}
Se da un número entero. Escribe una condición que verifique si el último dígito de este número es igual a cero.
Supongamos que en la variable num se almacena un número.
Determina si el número es par o no. El número será
par si el último carácter es igual a 0,
2, 4, 6 o 8,
e impar en caso contrario.