Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Acabei que não entendi muito bem o funcionamento da estrutura do "for", apesar de eu ter feito um código comentado anteriormente.

O que não entendi 100% e assisti a aula várias vezes, mas não entendi uma coisa. Eu sei de início que a estrutura é percorrida exatamente a mesma quantidade de elementos que há na array no momento. Por exemplo: se tem 10 elementos. Então ele é percorrido 10 vezes. Até aí tudo bem. Então a minha dúvida é sobre o percorrer da verificação dentro da estrutura do for. Mas a questão é:

É percorrido as 10 vezes somente dentro dessa estrutura abaixo?

for( var posicao = 0; posicao < ingredientes.length; posicao++) {

Ou é percorrido as 10 vezes dentro de toda essa estrutura abaixo?

for( var posicao = 0; posicao < ingredientes.length; posicao++) {

            if( ingredientes[posicao] == ingrediente) {

                existe = true;
                break;
            }
        }

Ou ainda, é percorrido dentro de toda essa outra estrutura abaixo?

for( var posicao = 0; posicao < ingredientes.length; posicao++) {

            if( ingredientes[posicao] == ingrediente) {

                existe = true;
                break;
            }
        }

        if( existe == false) {

            ingredientes.push(ingrediente);
            contador++;
        }

    }

Aqui o código completo

<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>
2 respostas
solução!

Oi Marcos, se o array ingredientes tiver 10 ingrediente, então o for, dentro da chaves '{ }' será percorrido 10x, passando por todos os ingredientes

// Digamos que seja 10 o tamanho do array ingredientes
for( var posicao = 0; posicao < ingredientes.length; posicao++) 
{

     if( ingredientes[posicao] == ingrediente) 
        {
            existe = true;
                    break;
        }; // caso o ingrediente já exista, o for irá quebrar (break)

}; // o que estiver dentro das chaves será executado 10x desde que não haja uma quebra(break) do for

Oi Luis Dias! Entendi bem melhor agora. Muito obrigado por ter esclarecido! Bom trabalho!