1
resposta

Atividade 11 - programa para de rodar no primeiro ingrediente

<meta charset="UTF-8">

<h2>Receitas do Yan</h2>

<script>    

    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 ingredienteLancado = ingrediente();


        var achou = false;

        for(var posicao = 0; posicao < ingredientes; posicao++) {

            if(ingredientes[posicao] == ingredienteLancado) {
                achou = true;
                break;
            }
        }

        if(achou == false) {
            ingredientes.push(ingredienteLancado);
            contador++;

        }

    }

    console.log(ingredientes);
    document.write (ingredientes);

</script>

apresenta um erro no console que não consigo entender. devo criar uma função?

1 resposta

Fala Alexandre, Tudo bom?

O erro Uncaught TypeError: ingrediente is not a function avisa que ingrediente não é uma função.

Na linha 17 você acaba chamando a variável ingrediente como se ela fosse uma função.

Da forma que o codigo está escrito, a variável ingredienteLancado receber o valor de retorno da função ingrediente. O que não era a intenção do código.

Retira as () que o código funcionará normalmente.

Desta forma a variável ingredienteLancado irá receber o valor da variável ingrediente.

var ingredienteLancado = ingrediente;

Abraço!