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

function exibeMensagemErro

Poderiam me explicar essa função?

function exibeMensagensDeErro(erros){ 
    var ul = document.querySelector("#mensagens-erro"); 

    erros.forEach(function(erro){// Minha dúvida ta aqui.
        var li = document.createElement("li");
        li.textContent = erro;
        ul.appendChild(li);
    });
}

Supondo que tenha apenas um erro: "Nome não pode estar em branco", logo o array vai ter tamanho um.(até aqui blz)

"li.textContent = erro;" -- Aqui é atribuido o conteúdo da tag dentro da variável erro . O que eu não entendi é como o valor "Nome não pode estar em branco" chegou dentro desse li para ser atribuido ao erro.

3 respostas

Fala aí Alexandre, tudo bem? Vamos lá:

Repare que você chama a função validaPaciente:

function validaPaciente(paciente) {

    var erros = [];

    if (paciente.nome.length == 0){
        erros.push("O nome não pode ser em branco");
    }

    if (paciente.gordura.length == 0){
        erros.push("A gordura não pode ser em branco");
    }

    if (paciente.peso.length == 0){
        erros.push("O peso não pode ser em branco");
    }

    if (paciente.altura.length == 0){
        erros.push("A altura não pode ser em branco");
    }

    if (!validaPeso(paciente.peso)){
        erros.push("Peso é inválido");
    }

    if (!validaAltura(paciente.altura)){
        erros.push("Altura é inválida");
    }

    return erros;
}

Ela retorna um array de string, onde cada string é um erro que foi encontrado no paciente.

Veja que você percorre o forEach onde cada erro será um string e atribuí ele para o textContent do li:

li.textContent = erro;

Nesse caso, o erro é cada erro dentro do array.

Espero ter ajudado.

A varivavel "erros" está dentro da função validaPaciente e como no final é retornado esta varivável. A outra função exbieMensagemDeErro tem acesso a esse array com as mensagens de erro dele, certo? (só pra ver se eu entendi hehe)

solução!

Exatemente, isso mesmo, apenas complementando:

O retorno da função validaPaciente que seria a variável erros é armazenada em outra variável erros fora dela:

var erros = validaPacientes(paciente);

Depois ela é passada como parâmetro para a função exibeMensagensDeErro:

exibeMensagensDeErro(erros)

Seu entendimento está correto.

Espero ter ajudado.