Ejercicio para resolver por pasos

Yo tengo una web con un input y un botón:
Cadena:[______]
[Sumar]

En cadena me van a introducir unos números separados por comas. Cuando le den a sumar me va a mostrar la suma de esos números.

EJ: 1,2,3,4,5
Al darle a sumar me pondrá 15

1.- Creo el HTML

	<div id="contenedor" class="container ">
		Cadena: <input type="text" id="cad">
		<button id="sumar" class="btn btn-success">Sumar</button>
		<p id="resultado"></p>
	</div>

2.- Crearía una función que haga el cálculo que me piden. ¿Qué me piden? Que dada una cadena de números separados por coma me devuelva la suma.
función sumaNumero(cadena)—> Suma
sumaNumero(‘1,2,3’)-> 6
2.a Definición y parámetros

function sumaNumero(cadena){
let suma=0;
// Aquí ocurrirá la magia
return suma;
}

2.b Buscaremos la lógica de lo que nos piden. Definimos el algoritmo que vamos a utilizar
A mí se me ocurre: Lo paso a un array. Luego me recorro ese array y voy sumando los números
¿Sé pasar de cadena separa con comas a un array? Sí: split(‘,’)
¿Sé recorrer un array? Sí: con el for de toda la vida

function sumaNumero(cadena){
let suma=0;
let numeros=cadena.split(',')
for(let i=0;i<numeros.length;i++){
//Algo haremos aquí
}
return suma;
}

2.c ¿Qué me falta? Ir sumando los números. ¿Dónde tengo los números? en numeros[i]
¿Dónde los quiero sumar? en suma ¿Cómo lo hago? suma=suma+numeros[i] suma+=numeros[i]

function sumaNumero(cadena){
let suma=0;
let numeros=cadena.split(',')
for(let i=0;i<numeros.length;i++){
suma+=numeros[i]
}
return suma;
}

2.d Me doy cuenta al probarlo que hay un error y lo corrijo:

function sumaNumero (cadena) {
  let suma = 0
  const numeros = cadena.split(',')
  for (let i = 0; i < numeros.length; i++) {
    suma += parseFloat(numeros[i])
  }
  return suma
}

3.- Enlazar la función que ya tengo con el HTML. Me piden que al clicar a sumar me haga los cálculos. 3.a. Enlazar el botón con una función

document.getElementById('sumar').addEventListener('click',sumar)

3.b Creo la función y la pruebo

function sumar () {
  console.log('Todo bien')
}

3.c ¿QUé tengo que hacer dentro de la función? obtener valores, realizar cálculos y mostrar resultado.
3.d ¿Qué valor tengo que obtener? La cadena que ha introducido el usuario. ¿Sé hacerlo?

  const cadena = document.getElementById('cad').value

console.log(cadena)
Importante: tanto el getElementById para recuperar el valor como introducirlo dentro de una variable
3.e Sumar todos los números de la cadena introducida. ¿Cómo? Ya tengo una función sumaNumero.
const suma = sumaNumero(cadena)
console.log(suma)
3.f Poner este resultado en el HTML

  document.getElementById('resultado').innerHTML = 'La suma es ' + suma

3.g Ejemplo de cambiar estilo:

 if (suma > 20) {
    document.getElementById('resultado').style.color = 'red'
  } else {
    document.getElementById('resultado').style.color = 'black'
  }

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos