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

Como listar os ingredientes em uma lista?

Minha dúvida é sobre a Aula 09 - Atividade 10

Ao finalizar a atividade, surgiu a ideia de listar os ingredientes na página em uma lista <ul>. Segue o código;

<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 (var i = 0; i < ingredientes.length; i++) {
            if (ingrediente == ingredientes[i]) {
                existe = true
                break;
            }
        }
        if (existe == false) {
            ingredientes.push(ingrediente);
            contador++;
        }
    }

    document.write("<ul>")
    for (var i = 0; i < ingrediente.length; i++) {
        document.write("<li>" + ingrediente[i] + "</li>")
    }
    document.write("</ul>")

    console.log(ingredientes);
</script>

Minha saída esperada é a seguinte:

Receitas do Yan
- Manga
- Leite
- Água

Porém a que está sendo mostrada é:

Receitas do Yan
- Á
- g
- u
- a
2 respostas
solução!

Fala Vagnerlandio, tudo bem?! o problema é são os dois s que ficaram faltando no seu último for o que escreve na tela os ingredientes

<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 (var i = 0; i < ingredientes.length; i++) {
            if (ingrediente == ingredientes[i]) {
                existe = true
                break;
            }
        }
        if (existe == false) {
            ingredientes.push(ingrediente);
            contador++;
        }
    }

    document.write("<ul>")
    for (var i = 0; i < ingredientes.length; i++) {
        document.write("<li>" + ingredientes[i]+ "</li>")
    }
    document.write("</ul>")

    console.log(ingredientes);
</script>

Isso causava dois problemas, o seu loop era executado uma vez para cada letra da ultima palavra valida na variavel ingrediente e o que você retatou aqui no fórum.

Deu certo, Brigadão :D