1
resposta

Tentando entender o erro

Com a ajuda de um colega do fórum, entendi onde estava errando. Porém não estou compreendendo a razão do erro do loop do primeiro ingrediente. Aqui está o código errado:

 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 repetido = false;
        for(var posicao = 0; posicao < ingredientes.length; posicao++) {

                    if(ingrediente == ingredientes[posicao]) {
                    repetido = true;
                    break;
                    }

                    if(ingrediente !== ingredientes[posicao]) {
                            ingredientes.push(ingrediente);
                            contador++;
                }    
        }

    }

Alguém consegue explicar o loop passo a passo? Eu pensei que o contador++ era adicionado a cada varrida do for, mas isso não explica o contador sempre estar em 1 nesse loop.

1 resposta

Alisson, no inicio a posicao e ingredientes.length são 0, estão o for nunca vai acontecer

ingredientes.push(ingrediente) tem que ficar fora do *for

        var repetido = false;
        for (var posicao = 0; posicao < ingredientes.length; posicao++) {
            if (ingrediente == ingredientes[posicao]) {
                repetido = true;
                break;
            }
        }

        if (!repetido) {
            ingredientes.push(ingrediente);
            contador++;
        }