Repetir hasta que lo ingresado sea un número
Crea una función readNumber
que pida un número hasta que el visitante ingrese un valor numérico válido.
El valor resultante debe ser devuelto como number.
El visitante puede también detener el proceso ingresando una linea vacía o presionando “CANCEL”. En tal caso la función debe devolver null
.
function readNumber() {
let num;
do {
num = prompt("Ingrese un número por favor:", 0);
} while ( !isFinite(num) );
if (num === null || num === '') return null;
return +num;
}
alert(`Read: ${readNumber()}`);
La solución es un poco más intrincada de lo que podría ser porque necesitamos manejar null
y líneas vacías.
Entonces aceptamos entrada de datos hasta que sea un “número regular”. También null
(cancel) y las líneas vacías encajan en esa condición porque un su forma numérica estos son 0
.
Una vez detenido el ingreso, necesitamos tratar especialmente los casos null
y línea vacía (return null
), porque al convertirlos devolverían 0
.