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

Array - Só aparece mensagem de erro [pergunta corrigida]

Caríssimos, o programa não informa quando o número correto aparece, dando a mensagem de que o número escolhido está errado. Alguém pode identificar o erro, por favor?

<meta charset="UTF-8">

<input type="text" id="numero" />
<input type="submit" id="adivinhar" value="Compare com os números que estou pensado!"/>

<script>

var segredo = [34, 37, 45, 50, 58];

var caixaDoNumero = document.getElementById("numero");

var botaoClicado = function(){
    if(segredo == caixaDoNumero.value){
    alert("Parabéns! Você acertou o número secreto!");
    } else {
    alert("Infelizmente você errou!");
    }

};

var botaoAdivinhar = document.getElementById("adivinhar");
botaoAdivinhar.onclick = botaoClicado;

</script>
3 respostas

Meu amigo, tua var 'segredo' é um array. tu precisa percorrer o array, pra comparar com o número que vem do input! ficaria algo tipo:

//aqui ele cria um contador 'i' e repete o laço enquanto i for menor que o 'tamanho' do array segredo for( var i = 0; i <= segredo.length; i++ ){

//aqui, em cada volta do loop, 1 vai ter um valor diferente (iniciando em 0) então ele vai testar cada linha do array, que aí sim vai ser um integer! if( caixaDoNumero == segredo[i] ){ alert("Parabéns! Você acertou o número secreto!"); } else { alert("Infelizmente você errou!"); } } }

ps. desculpe a formatação mas esse editor aqui eh fraco ehehe

solução!

Você tem que criar uma estrutura que faça o programa verificar o array (var segredos) e compará-lo com o número inserido pelo usuário. Para isso precisa usar um loop.

var botaoClicado = function(){
    for(var i = 0; i < segredos.length; i++){
        if(segredos[i] == caixaDoNumero.value){
            achou = true;
            break;    
        }     


    } 

    if(achou == true){
        alert("Parabéns! Você acertou um dos números secretos.");
    }else{
        alert("infelizmente você errou!");
    }

}

Como citado e exemplificado pelos colegas acima, você precisa iterar pelo array. Peço que caso a dúvida esteja sanada, escolha a resposta que melhor lhe ajudou e marque como resolvido o tópico, a fim de evitar mais postagens desnecessárias. Obrigado!