Olá!
Na tag for, é escrito assim:
"for( var posicao = 0; posicao < ingredientes.length; posicao++)"
No meu entendimento, no primeiro looping, o teste é feito assim: Posicão 0 é menor do que ingredientes.length?
Entretanto, o array ainda está vazio! Como pode esse teste ser verdadeiro?
No segundo looping, o teste ficaria assim; 1 é menor do que ingredientes.length? E nesse caso, o ingredientes.length teria apenas 1 valor, portanto 1 == 1! Como pode esse teste continuar sendo verdadeiro?
O código do professor funciona perfeitamente bem, mas eu não entendi o motivo. No meu exercicio eu alterei ingredientes.length por Quantidade. E também deu certo.
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;
}
}
ingredientes.push(ingrediente);
contador++;
}
console.log(ingredientes);