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

Repetição dos ingredientes

Olá, Já li meu código várias vezes, comparei com a resposta, porém ele continua permitindo ingredientes repetidos.

<meta charset="UTF-8">

<h1>Receitas do Yan</h1>

<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 achou = false;

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

        if (achou == false){
            ingredientes.push(ingrediente);

            contador++;
        }


    }

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

Fala Jocarlos, Beleza?

As listas (arrays) iniciam a contagem com o número 0.

Tanto a variável que irá controlar a repetição de ingredientes quanto o contador do while precisam ser 0, caso você queira comparar ao numero de ingredientes registrados na lista.

O problema estava apenas nessas variáveis de controle.

<meta charset="UTF-8">
<h1>Receitas do Yan</h1>
<script>
    var ingredientes = [];

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

    var contador = 0;

    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 == false){
            ingredientes.push(ingrediente);
            contador++;
        }
    }
    console.log(ingredientes);
</script>

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