Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Não consigo achar meu erro. (código)

'''

'''

4 respostas
<meta charset="UTF-8">

<input type="text" id="numero"/>
<input type="submit" id="adicionar" value="Adicione o número ao bingo" onclick="cliqueAdicionar()"/>
<input type="submit" id="visualizar" value="Veja os números do bingo" onclick="mostrarBingo()" />

<script>

var bingo = []

var mostrarBingo = function(){
    alert("click!!!")
    if(bingo.length == 0){
        alert("Você ainda não adicionou nenhum número.")
    }else{
        mostrarBingo = confirm("Você deseja visualizar agora todos os números do bingo?");
        if(mostrarBingo){
            var numBingo = "Os números do bingo são:"
            for(i = 0; i < bingo.length; i++){
                numBingo = numBingo + " " + bingo[i] + ";"
            };
        };
    };

};

var cliqueAdicionar = function(){
    var numDig = document.getElementById("numero");
    alert("cliquei!!!!");
    for(i = 0; i < bingo.length; i++){
        alert("for for");
        if(bingo[i] == parseInt(numDig.value)){
            jaAdd = true
            break;
        };
    };
    if(jaAdd){
        alert("Este número já foi adicionado, tente outro.")
    }else{
        bingo.push(numDig)
        alert("O " + numDig + " foi adicionado ao bingo.")
    };
};

</script>
solução!

O erro é porque você precisa declarar a variavel jaAdd antes de utilizá-la. Faça isso antes do seu for na função cliqueAdicionar.

Algumas deficiencias a mais que notei: - na sua função de adicionar vc está mandando exibir no alert o objeto da caixa de texto e não o valor contido nele. - problema análogo ao anterior, você ao adicionar no array está adicionando o objeto e não o valor. - Você monta a string dos números sorteados mas não mostra ao usuário.

segue abaixo o código refatorado para satisfazer tudo anteriormente citado:

<meta charset="UTF-8">
<input type="text" id="numero"/>
<input type="submit" id="adicionar" value="Adicione o número ao bingo" onclick="cliqueAdicionar()"/>
<input type="submit" id="visualizar" value="Veja os números do bingo" onclick="mostrarBingo()" />
<script>
  var bingo = [];

  var mostrarBingo = function() {
    if (bingo.length == 0) {
      alert("Você ainda não adicionou nenhum número.")
    } else {
      mostrarBingo = confirm("Você deseja visualizar agora todos os números do bingo?");
      if (mostrarBingo) {
        var numBingo = "Os números do bingo são:"
        for (i = 0; i < bingo.length; i++) {
          numBingo += " " + bingo[i] + ";"
        }
        alert(numBingo);
      }
    }
  };

  var cliqueAdicionar = function() {
    var numDig = document.getElementById("numero");
    var jaAdd = false;
    for(i = 0; i < bingo.length; i++){
      if(bingo[i] == parseInt(numDig.value)){
        jaAdd = true
        break;
      }
    }
    if (jaAdd){
        alert("Este número já foi adicionado, tente outro.")
    } else {
      bingo.push(numDig.value)
      alert("O " + numDig.value + " foi adicionado ao bingo.")
    }
};
</script>

Obrigado, eu já havia encontrado uma solução para o problema, mas aproveitei para comparar a sua com a minha...

A dúvida foi solucionada?