0

Cuando corro la función con sumatoriaHasta(4) me arroja como resultado 6 (correcto), pero cuando corro inmediatamente sumatoriaHasta(5) obtengo de resultado la 16, es decir 10 (el resultado correcto) + 6 el resultado anterior. Necesitaria que la variable resultado se me reinicie en cero cada vez que la función se vuelva a correr.

var resultado = 0;
function sumatoriaHasta(x){
    for( let i=0; i<x;i++){
        resultado = resultado + i;
    }
    return resultado;
}
sumatoriaHasta(4);
sumatoriaHasta(5);
belen
  • 105
  • 7

2 Answers2

5

El problema es que declaras la variable resultado fuera de la función.

La solución sería la siguiente:

function sumatoriaHasta(x){
var resultado = 0;
    for( let i=0; i<x;i++){
        resultado = resultado + i;
    }
    return resultado;
}
console.log(sumatoriaHasta(4));
console.log(sumatoriaHasta(5));
Zur
  • 451
  • 2
  • 6
4

Creo que sería importante que leyeras acerca de var, let, const y nada, las variables que puedes declarar en Javascript

Ahí la variable esta declarada para todo el documento, si quieres declararla solo para la función declárala dentro de la función

function sumatoriaHasta(x){
    let resultado = 0;
    for( let i=0; i<x;i++){
        resultado = resultado + i;
    }
    return resultado;
}
sumatoriaHasta(4);
sumatoriaHasta(5);

He cambiado let por var dado que eso asegura que dicha variable solo viva dentro de la función.

Sr1871
  • 4,737
  • 1
  • 8
  • 16