Passei dias nesse exercício, mas infelizmente não consegui alcançar uma resolução, embora minha última tentativa tenha sido essa:
<meta charset="UTF-8">
<h1>Receitas do Yan</h1>
<script>
function pulaLinha() {
document.write("<br>");
}
function mostra(texto) {
document.write(texto);
}
var ingredientes = [];
var quantidade = parseInt(prompt("Quantos ingredientes você vai adicionar?"));
var contador = 1;
var posicao = 0;
while( posicao <= ingredientes.length && posicao < quantidade ) {
var ingrediente = prompt("Informe o ingrediente " + contador);
var verifica = ingredientes[posicao] == ingrediente;
if(verifica == true) {
alert("Informe um ingrediente diferente.");
ingrediente = prompt("Informe o ingrediente " + contador);
}
if(verifica == false) {
ingredientes.push(ingrediente);
posicao++;
contador ++;
}
if(verifica == undefined) {
posicao = 0;
}
}
pulaLinha();
mostra(ingredientes);
console.log(ingredientes);
</script>
Vendo a resposta:
<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 existe = false;
for( var posicao = 0; posicao < ingredientes.length; posicao++) {
if( ingredientes[posicao] == ingrediente) {
existe = true;
break;
}
}
if( existe == false) {
ingredientes.push(ingrediente);
contador++;
}
}
console.log(ingredientes);
</script>
Tentando entender meu erro, cheguei na conclusão de que errei em como usar as variáveis booleanas, no exemplo de "resposta do instrutor", ele utiliza as variáveis booleanas como um "acessório", da mesma forma que ele utiliza a variável "contador", porém no meu código eu tentei extrair das variáveis "ingredientes" e "ingrediente", além de seus valores indicados no código, valores booleanos, diretamente(Isso é possível?). Se você que teve a disposição de chegar até aqui(desculpe o textão), eu seria muito grato se me ajudasse a entender meu erro, caso eu tenha sido claro em explicá-lo, rs.