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

Não existe ingrediente repetido aqui! não estou conseguindo resultados

<meta charset="UTF-8">

<h1>Receitas do Yan</h1>

<script>
    var ingredientes = [];

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

    var numIngredientes = 1;

    while( numIngredientes <= quantidade) {

        var ingrediente = prompt("Informe o ingrediente " + numIngredientes);
        var naoPodeRepitir = ingrediente  
          var achou = false;
     for(var posicao = 0; posicao < quantidade.length; posicao++) {
         if(quantidade[posicao] ==  naoPodeRepitir) {
             achou = true;
             break;
         }
     }

    if(achou == false ){
       ingredientes.push(naoPodeRepitir);
       numIngredientes++;

      }
    }

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

Oi Felipe, você poderia colocar seu código?

solução!
for(var posicao = 0; posicao < quantidade.length; posicao++) {
         if(quantidade[posicao] ==  naoPodeRepitir) {
             achou = true;
             break;
         }
     }

repare que nesse laço, sua intenção é verificar se o usuário digitou uma palavra que já existe! Mas, na realidade, seu código está verificando um array que não existe chamado "quantidade"(no caso, é uma variável que você declarou anteriormente apenas para saber quantos ingredientes serão!).

Vamos resolver esse problema: você tem a variavel "ingrediente" que recebe a receita, e também possui o Array "ingredientes" que armazena todos os valores que estão sendo adicionados no "ingrediente", assim, o que você quer comparar é se o "ingrediente" novo já existe no Array "ingredientes". Portanto, seu if deve verificar:

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

OBS1: repare que seu ciclo for deve rodar em um numero igual ao tamanho de posições que seu array possui, no caso ingredientes, assim usamos a função ".length" no ciclo for. OBS2: você não precisa criar uma nova variável chamada "naoPodeRepitir", só colocar "ingrediente" no lugar já é suficiente!

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