Na linha 16 você inicia já inserindo o ingrediente dentro da lista de ingredientes ingredientes.push(ingrediente)
. Retira essa parte, pq a inserção de item é para ser feito apenas quando o segundo IF for executado, pois ele é executado depois de já ter sido verificado se tem repetições no ingredientes que você colocou.
Na linha 20 o código não roda pq você colocouachou == true
. Nesse caso ele compara e ele precisa atribuir: achou = true
;
Na linha 21 executa o PROMT (perguntando o item que o usuário quer adicionar) dentro do IF que já identificou um item repetido. Retira todo esse PROMPT, pq o problema de executar esse PROMPT dentro desse IF é pq o informação que você capturar aí para o ingrediente será perdido. Quando o PROMPT é executado e ele pega a informação do ingrediente, mas logo depois vem o break que faz com que o while comece tudo de novo e o que você havia perguntando no PROMPT para o ingrediente é perdido.
Deixa só o alerta, está ok. Ele irá aparecer depois de encontrar um item repetido e irá informar ao usuário dessa repetição. E não se preocupe, pois o while irá voltar a pedir um ingrediente para aquele que o usuário havia colocado repedido.
Nesse código, o memento certo de adicionar o ingrediente é só no 2º IF. No código que você escreveu já está lá e está certinho.
Só arrumar as coisa que falei em cima que o seu sistema irá rodar.
Vou deixar o seu código aí em baixo ajustado.
Mas antes tenta entender como cada coisa funciona, pq fazer determinadas mudanças, pq é colocada a declaração e tal lugar e assim vai.
Espeto ter ajudado.
Sucesso na sua jornada!!
<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 posicao = 0; posicao < ingredientes.length ; posicao++ ){
if(ingredientes[posicao] == ingrediente){
achou = true;
alert(ingrediente + " já está na sua cesta. Escolha outro ingrediente para ser o ingrediente " + contador);
break;
}
}
if(achou == false){
ingredientes.push(ingrediente);
contador ++;
}
}
document.write(ingredientes);
</script>