Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

PODEM ME AJUDAR A ACHAR O ERRO NO MEU CÓDIGO? ELE ACEITA INGREDIENTE REPETIDO. OBRIGADO

ACHO QUE CONSEGUI CORRIGIR O ERRO. DÁ PARA CONFERIR? OBRIGADO

<meta charset="UTF-8">

<h1>Receitas do Yan</h1>

<script>
    var ingredientes = [];

    var quantidade = +prompt("Quantos ingredientes você vai adicionar?");
    console.log(quantidade);

    console.log(repetiu);

    for(var contador = 1; contador <= quantidade; contador++) {

           var repetiu = false;
        var ingrediente = prompt("Informe o ingrediente " + contador + "º:");
        console.log(ingrediente);

        for(var posicao = 0; posicao < quantidade; posicao++){
            if(ingrediente == ingredientes[posicao]){
                repetiu = true;
                contador=contador-1;
                break;
            }
        }

        if(repetiu == false){
                    ingredientes.push(ingrediente);
        }
    }

    console.log(ingredientes);
</script>
1 resposta
solução!

Oi, tudo bem?

O interessante é que usemos para dar o loop da quantidade de ingredientes com o while, ele vai ajudar a dar o loop diante da quantidade de ingredientes que o usuário pediu, ou seja, enquanto o usuário pediu 4 ingredientes, a variável var ingrediente = prompt("Informe o ingrediente " + contador + "º:"); vai ser chamada, até que o contador chegue no limite de vezes. Já aqui, nesse trecho:

for(var posicao = 0; posicao < quantidade; posicao++){
            if(ingrediente == ingredientes[posicao]){
                break;
                repetiu = true;
            }

Você precisa usar o break após a linha repetiu = true, da forma como você está usando, você para a verificação antes dela ocorrer, que é se varíavel repitiu foi verdadeira, você precisa deixar que o if verifique primeiro. E nesse trecho:

 if(repetiu == false){
            ingredientes.push(ingrediente);
            contador++;

Adicionar a variável contadora para que os ingredientes que forem sendo adicionados sejam guardados em ingredientes.

O seu código corrigido aqui:



<meta charset="UTF-8">

<h1>Receitas do Yan</h1>

<script>
    var ingredientes = [];

    var quantidade = +prompt("Quantos ingredientes você vai adicionar?");
    console.log(quantidade);


    var contador = 1;

    while( contador <= quantidade) {

        var ingrediente = prompt("Informe o ingrediente " + contador + "º:");
        console.log(ingrediente);

        var repetiu = false;
        console.log(repetiu);

        for(var posicao = 0; posicao < quantidade; posicao++){
            if(ingredientes[posicao] == ingrediente){

                repetiu = true;
                break;
            }
        }

        if(repetiu == false){
            ingredientes.push(ingrediente);
            contador++;

        }
    }

    console.log(ingredientes);
</script>

Espero ter te ajudado!