Fiz o código. Da forma como colei abaixo, está funcionando. Minha dúvida é com relação à variável "receita". Quando dentro do while, a função "receita.push(ingrediente);" substitui sempre o elemento 0 do array. Foi preciso a variável ser declarada fora do while para que cada ingrediente fosse adicionado numa lista. Por que disso?
Por exemplo: se eu pedir 4 ingredientes e escrever mamão, laranja, maçã e banana, a variável receita termina com somente 1 elemento (sempre o último, nesse caso banana).
<meta charset="UTF-8">
<h1>Receitas do Yan</h1>
<script>
function gerarReceita(quantidade) {
var receita = [];
var contador = 1;
while(contador <= quantidade) {
var ingrediente = prompt("Informe o ingrediente " + contador);
var ingredienteInvalido = false;
for(var indice = 0; indice < receita.length; indice++) {
if(receita[indice] == ingrediente) {
alert("Esse ingrediente já foi inserido");
ingredienteInvalido = true;
break;
}
}
if(ingredienteInvalido == false) {
receita.push(ingrediente);
contador++;
}
}
return receita;
}
var quantidade = parseInt(prompt("Quantos ingredientes você vai adicionar?"));
var receita = gerarReceita(quantidade);
console.log(receita);
</script>