regresar a la lección

Repetir hasta que lo ingresado sea un número

importancia: 5

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.

Ejecutar el demo

Abrir en entorno controlado con pruebas.

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.

Abrir la solución con pruebas en un entorno controlado.