Pessoal, eu não entendi porque o "break;" tem que ser colocado após a variável ingredRepetido ser true, ele vai continuar percorrendo as posições do array pra verificar se existe mais algum igual e vai sair do loop do for de qualquer forma. E também não vai entrar no segundo IF porque ingredRepetido já virou true. Na opinião do instrutor fala que "O break "quebra" o for e o while", mas sem o break meu codigo funcionou normal e nao aceitou 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 ingredRepetido = false;
for(var posicao = 0; posicao < ingredientes.length; posicao++) {
if(ingredientes[posicao] == ingrediente) {
ingredRepetido = true;
}
}
if(ingredRepetido == false) {
ingredientes.push(ingrediente);
contador++;
}
}
console.log(ingredientes);
</script>