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

10.Não existe ingrediente repetido aqui!

Eu fiz esse código, mas ele não sai do pedido do ingrediente 1. Não consigo identificar o erro.

<meta charset="UTF-8">

<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(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

Olá! O problema está no seu for.

Como sua lista de ingredientes está vazia, seu for nunca será executado, pois posicao < ingredientes.length sera 0<0, que é false.

Você poderia verificar, antes do for, se a lista de ingredientes está vazia. Se tiver, vc não precisa verificar se o ingrediente está repetido e só insere direto! Se não tiver vazia, aí sim você verifica se tem repetição.

solução!

Alexandre, eu ainda não consegui resolver. Agora ele consegue sair do ingrediente 1. Pede a quantidade de ingredientes, depois deixa eu digitar quais são os ingredientes. Porém, no fim, tem quatro itens, pois ele repete na última posição o anti-penúltimo que foi dito.

<meta charset="UTF-8">

<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;

        while(contador == 1) {

            ingredientes.push(ingrediente);
            contador++;

        }

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

            if(ingredientes[posicao] == ingrediente) {

                existe = true;
                break;
            }

            if(existe == false) {

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

    console.log(ingredientes);

</script>

Como resolve isso?