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

olá, estou com uma dúvida na linha de código numero 58, não estou conseguindo compreender qual é o problema com o array.

9 respostas

// Saulo, bom dia! // Meu código ficou assim, inclusive incluí um alerta orientando que seja inserido novo ingrediente.

<meta charset="UTF-8">

<h1>Receitas do Yan</h1>


<script type="text/javascript">

    var ingredientes = [];

    var quantidade = parseInt(prompt("Quantos ingredientes você vai adicionar?"));

    var contador = 1;

    while( contador <= quantidade) {

        var ingrediente = prompt("Informe o ingrediente " + contador);

        var achou = false;

        for (var i = 0; i < ingredientes.length; i++) {
            if (ingrediente == ingredientes[i]) {
                achou = true;
                break;
            }
        }

        if (achou !== true) {
              ingredientes.push(ingrediente);
            contador++;
        }else {
            alert("Ingrediente já existe, Favor inserir outro!");
        }
    }

    console.log(ingredientes);


</script>

Mande o código, para apreciação.

Perdão acabei postando de maneira errada pensei que o código tinha sido postado.

<meta charset = "UTF-8">


<script>

function sortear (){

    return Math.round(Math.random()* 10); 
}

function sortearNumeros(quantidade){

    var numerosMaquina = [];

    var numeros = 1;

    while ( numeros <= quantidade){

        var numAleatorio = sortear();

        var numRepetido = false;

        if (numAleatorio !== 0){

            for (var posicao = 0; posicao < numerosMaquina.length; posicao++){ 

                if (numerosMaquina[posicao] == numAleatorio ){

                    numRepetido = true
                    break 
                } 
            }    

            if (numRepetido == false){

                    numerosMaquina.push(numAleatorio);
                    numeros++;
            }

        }
    }

    return numerosPensados;
}

var numerosPensados = sortearNumeros(3);

var input = document.querySelector("input");
    input.focus();



function resposta (){

    var achou = false

    for(var posicao = 0; posicao < numerosMaquina.length; posicao++) { // é dito que o erro está aqui, e vem com esta mensagem:  "Uncaught ReferenceError: numerosMaquina is not defined"


        if ( input.value == numerosPensados[posicao]){

             alert("boa de primeira acertou um dos numeros.");
             achou = true;
             break;
        } 
    } 



    if (achou == false){

            alert("você errou, tente novamente.");
    }

    input.value = " ";
    input.focus();

}




var button = document.querySelector("button");

button.onclick = resposta;

console.log(numerosPensados);

</script>
solução!

Você declarou a variavel numerosMaquina dentro da função sortearNumeros(), logo ela só pode ser vista dentro desta função. Experimente declarar ela fora de qualquer função, isso vai permitir que ela seja visivel a todas.

Por que o professor, na aula "Manipulando Arrays" coloca a variavel dentro da função e funcionou?

Eu coloquei a variavel fora na função e deu certinho mas me ficou está duvida.


    function sorteiaNumeros(quantidade) {

        var segredos = [];

        var numero = 1;

        while(numero <= quantidade) {

              var numeroAleatorio = sorteia();
              var achou = false;

              if (numeroAleatorio !== 0) {
                     for(var posicao = 0; posicao < segredos.length; posicao++) {

                           if(segredos[posicao] == numeroAleatorio){
                                achou = true;
                                break;
                           }

                     }

                     if (achou == false) {
                           segredos.push(numeroAleatorio);
                           numero++;
                     }
              }

        }

        return segredos;

Em sortearNumeros() você está retornando numerosPensados ao invés de numerosMaquina.

Em resposta() você está usandonumerosMaquina.length, acredito que seja numerosPensados.length.

Nesse exemplo, funciona por que ele usa o return da função para "extrair" esse array dessa função, com o return ele consegue atribuir esse array a outra variavel fora da função, permitindo assim usar seu valor

muito obrigado pessoal ajudaram muito :)