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

Problema com a array caixaDosMeusNumeros

Bom dia pessoal! Estou com um problema que encontrei com a Array especificada no título deste debate. Eu estava tentando descobrir o por quê não estava entrando do "if", e verifiquei que a array não esta guardando os números que digitei. Segue o código abaixo:

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<input type="text" id="numero1"> <br>
<input type="text" id="numero2"> <br>
<input type="text" id="numero3"> <br>
<input type="text" id="numero4"> <br>
<input type="text" id="numero5"> <br>
<input type="text" id="numero6"> <br>
<input type="submit" value="enviar" id="botao">

</body>
</html>

<script>

    //Colher os numeros da interface
    var caixaDosMeusNumeros = [];

    caixaDosMeusNumeros.push(document.getElementById("numero1").value);
    caixaDosMeusNumeros.push(document.getElementById("numero2").value);
    caixaDosMeusNumeros.push(document.getElementById("numero3").value);
    caixaDosMeusNumeros.push(document.getElementById("numero4").value);
    caixaDosMeusNumeros.push(document.getElementById("numero5").value);
    caixaDosMeusNumeros.push(document.getElementById("numero6").value);


    //Pegar os números sorteados
    var caixaDeNumerosSorteados = [];
    var numerosSorteados = function () {

        var numero;

        for (var i = 0; i < 6; i++) {
            numero = Math.round(Math.random() * 20);
            caixaDeNumerosSorteados.push(numero);
        }

    };

    //Imprimir numeros sorteados
    var imprimirNumerosSorteados = function () {
        for(var i = 0; i < caixaDeNumerosSorteados.length; i++) {
            document.write("Numero sorteado: " + caixaDeNumerosSorteados[i] + "<br>");
        }
    };

    //Imprimir meus Numeros
    var imprimirMeusNumeros = function () {
        for(var i = 0; i < caixaDosMeusNumeros.length; i++) {
            document.write(caixaDosMeusNumeros[i] + ", ");
        }
        document.write("<br>");
    };


    //Evento do botão
    var contadorDeNumerosAcertados = 0;
    var botaoClicado = function () {

        numerosSorteados();

        var numerosAcertados = [];

        for (var i = 0; i < caixaDeNumerosSorteados.length; i++) {

            for (var j = 0; j < caixaDeNumerosSorteados.length; j++) {

                if (caixaDosMeusNumeros[j] === caixaDeNumerosSorteados[i]) {
                    document.write("Thiago Gostoso" + j + "<br>");
                    numerosAcertados.push(caixaDosMeusNumeros[i]);
                    contadorDeNumerosAcertados++;
                }

            }

        }

        document.write("Os números sortedos são: <br><br>");
        imprimirNumerosSorteados();

        document.write("Os seus números são: <br>");
        imprimirMeusNumeros();



        if (contadorDeNumerosAcertados == 1) {
            document.write("Você acertou somente " + contadorDeNumerosAcertados + " número.<br>");
            document.write("<b>Ele é: </b><br>");
            document.write(numerosAcertados[0] + "<br>");

        } else if(contadorDeNumerosAcertados > 1) {
            document.write("Você acertou " + contadorDeNumerosAcertados + " números.<br>");
            document.write("<b>Eles são: </b><br>");
            for (var i = 0; i < numerosAcertados.length; i++) {
                document.write(numerosAcertados[i] + "<br>")
            }
        } else {
            document.write("Infelizmente você não acertou nenhum número.");
        }


    };

    var botao = document.getElementById("botao");
    botao.onclick = botaoClicado;



</script>

Acredito que deve haver algum processo de conversão. Mas estou há horas tentando resolver. Me ajudem por favor!

7 respostas

Amigo, bom dia.

Fiz alguns ajustes no seu código, o mesmo está funcionando certinho...dá uma olhada e e veja se consegue entender...

uma coisa que fiz foi colocar o corpo

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>

<body>
<input type="text" id="numero1" value="2"><br>
<input type="text" id="numero2" value="2"><br>
<input type="text" id="numero3" value="3"><br>
<input type="text" id="numero4" value="4"><br>
<input type="text" id="numero5" value="5"> <br>
<input type="text" id="numero6" value="6"><br>
<input type="submit" value="enviar" id="botao">



</body>
<script>

    //Colher os numeros da interface
    var caixaDosMeusNumeros = [];
    caixaDosMeusNumeros.push(document.getElementById("numero1").value);
    caixaDosMeusNumeros.push(document.getElementById("numero2").value);
    caixaDosMeusNumeros.push(document.getElementById("numero3").value);
    caixaDosMeusNumeros.push(document.getElementById("numero4").value);
    caixaDosMeusNumeros.push(document.getElementById("numero5").value);
    caixaDosMeusNumeros.push(document.getElementById("numero6").value);
    //Imprimir numeros sorteados
    var imprimirNumerosDigitados = function () {
        for(var i = 0; i < caixaDosMeusNumeros.length; i++) {
            document.write("Numero digitados: " + caixaDosMeusNumeros[i] + "<br>");
        }
    };

    //Pegar os números sorteados
    var caixaDeNumerosSorteados = [];
    var numerosSorteados = function () {

        var numero;

        for (var i = 0; i < 6; i++) {
            numero = Math.round(Math.random() * 20);
            caixaDeNumerosSorteados.push(numero);
        }

    };

    //Imprimir numeros sorteados
    var imprimirNumerosSorteados = function () {
        for(var i = 0; i < caixaDeNumerosSorteados.length; i++) {
            document.write("Numero sorteado: " + caixaDeNumerosSorteados[i] + "<br>");
        }
    };

    //Imprimir meus Numeros
    var imprimirMeusNumeros = function () {
        for(var i = 0; i < caixaDosMeusNumeros.length; i++) {
            document.write(caixaDosMeusNumeros[i] + ", ");
        }
        document.write("<br>");
    };


    //Evento do botão
    var contadorDeNumerosAcertados = 0;
    var botaoClicado = function () {

        numerosSorteados();

        var numerosAcertados = [];

        for (var i = 0; i < caixaDeNumerosSorteados.length; i++) {

            for (var j = 0; j < caixaDeNumerosSorteados.length; j++) {

                if (caixaDosMeusNumeros[j] === caixaDeNumerosSorteados[i]) {
                    document.write("Thiago Gostoso" + j + "<br>");
                    numerosAcertados.push(caixaDosMeusNumeros[i]);
                    contadorDeNumerosAcertados++;
                }

            }

        }

        document.write("Numeros digitados sao: <br> <br>");
        imprimirNumerosDigitados()
        document.write("Os números sortedos são: <br><br>");
        imprimirNumerosSorteados();

        document.write("Os seus números são: <br>");
        imprimirMeusNumeros();



        if (contadorDeNumerosAcertados == 1) {
            document.write("Você acertou somente " + contadorDeNumerosAcertados + " número.<br>");
            document.write("<b>Ele é: </b><br>");
            document.write(numerosAcertados[0] + "<br>");

        } else if(contadorDeNumerosAcertados > 1) {
            document.write("Você acertou " + contadorDeNumerosAcertados + " números.<br>");
            document.write("<b>Eles são: </b><br>");
            for (var i = 0; i < numerosAcertados.length; i++) {
                document.write(numerosAcertados[i] + "<br>")
            }
        } else {
            document.write("Infelizmente você não acertou nenhum número.");
        }


    };

    var botao = document.getElementById("botao");
    botao.onclick = botaoClicado;



</script>
</html>
if (caixaDosMeusNumeros[j] === caixaDeNumerosSorteados[i]) {

Senhores, = para atribuir, == para comparar e === ?

Quando se utiliza == você está comparando apenas valores, quando utiliza === você além de comparar os valores estará comparando também os tipos.

Olá Sérgio! Consegui ver sim a diferença. E bem... Ele está entrando no Loop, mas não entra no IF. Mes acertando os valores. sabe me dizer o por quê disso?

solução!

Thiago,

Dei uma olhada aqui, e é exatamente a questão do uso ===.

Tente trocar a comparação pelo == (dois operadores iguais) para que o código só realize a comparação do valores e não dos tipos.

Testei aqui e funcionou certinho.

Obrigado Sérgio! Ajudou bastante!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software