2
respostas

var total = 0 fora da função

O meu código só funciona quando coloco a var total = 0 fora do escopo da função. Na resposta do exercício está dentro da função. Isso está correto?

var convidados = [];

function criaListaConvidados() {
  var itens = document.querySelectorAll(".convidado");

  for (var i = 0; i < itens.length; i++) {
    var convidado = {
      nome: itens[i].querySelector(".nome").textContent,
      idade: parseInt(itens[i].querySelector(".idade").textContent),
    };
    convidados.push(convidado);
  }
  return convidados;
}

var total = 0;

function calculaTotalDasIdades(par) {


  for (var i = 0; i < par.length; i++) {
    total += par[i].idade;
  }

  return total;
}

var criaLista = document.querySelector(".captura");
criaLista.addEventListener("click", (event) => {
  event.preventDefault();

  criaListaConvidados();
  calculaTotalDasIdades(convidados)
  console.log(convidados);
  console.log(total);
});
2 respostas

Não sei se estou correto, mas se você declarar o total dentro da função, toda vez que a função for chamada, neste caso clicando no elemento de classe captura, ele vai declarar uma variavel chamada total, e atribuir como 0 o seu valor, ou seja, nunca vai ser incrementado o valor de total, já que sempre você chama a função dizendo que seu valor é zero, e por conta disto, ele tem que ficar fora da função. Se no exercício está com o total dentro da função, pode ser que esteja errado mesmo.

Exatamente isso que está acontecendo Matheus. Acredito que esteja errado no exercício.