regresar a la lección

Suma de números ingresados

importancia: 4

Escribe una función sumInput() que:

  • Pida al usuario valores usando prompt y los almacene en el array.
  • Termine de pedirlos cuando el usuario ingrese un valor no numérico, una cadena vacía, o presione “Escape”.
  • Calcule y devuelva la suma de los items del array.

P.D. Un cero 0 es un número válido, por favor no detengas los ingresos con el cero.

Ejecutar el demo

Toma nota del sutil pero importante detalle de la solución. No convertimos value a número instantáneamente después de prompt, porque después de value = +value no seríamos capaces de diferenciar una cadena vacía (señal de detención) de un cero (un número válido). Lo hacemos más adelante.

function sumInput() {

  let numbers = [];

  while (true) {

    let value = prompt("Un número, por favor...", 0);

    // ¿Debemos cancelar?
    if (value === "" || value === null || !isFinite(value)) break;

    numbers.push(+value);
  }

  let sum = 0;
  for (let number of numbers) {
    sum += number;
  }
  return sum;
}

alert( sumInput() );