2
respostas

Aqui não existe ingrediente repetido mesmo! Método simples para entender

<meta charset="UTF-8">

<h1>Receitas do Yan</h1>

<script>
    //arrayList.clear();  ???
    var ingredientes = [];

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

    var contador = 1;

    while( contador <= quantidade) {

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

        ingredientes.push(ingrediente);

            if (contador>1) {  // Diz que só é possível comparar algo se tiver mais de 1 ingrediente
                for (var k=1; k<contador; k++) { // Aqui vamos comparar cada entrada com as entradas
                                                // anteriores
                    if (ingrediente == ingredientes[k]) { 
                        alert("Ingrediente "+contador+" repetido.  Tente outro");
                        contador = contador-1;  //Se 1 ingrediente repetiu, não posso avançar na qtde

                    }
                }
            }    
                contador++;

    }



    console.log(ingredientes);
</script>
2 respostas

Olá, Alexandre!

Ficou bacana sua lógica, porém, quando rodamos o código, veja quando vamos colocar o segundo ingrediente ele acusa como repetido, mesmo sendo diferente e só depois de alterarmos o segundo que estamos querendo inserir, ele aceita. Por exemplo:

  • Coloco 3 ingredientes para serem inseridos.
  • Digito arroz (passa)
  • Digito feijão (acusa repetido)
  • Digito feijão novamente (acusa repetido)
  • Digito carne (passa)
  • Digito bebida (passa e termina a execução)

Tente refatorar a lógica e nos dê um retorno!

Um abraço

Cássio, obrigado pelo retorno - parece que não testei o suficiente - é bom ter acontecido para que eu preste muito mais atenção aos testes. Sim, vou rever até encontrar o problema e repostar para análise. Obrigado. Att