3
respostas

Objeto literal ao invés de If

Na function validaPaciente alguém poderia me mostrar como ficaria as condicionais de erros com Objeto literal?

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");
    }

    if(!validaGordura(paciente.gordura)) {
       erros.push("A porcentagem de gordura é invalida")
   }

   console.log(erros);
   return erros;
}
3 respostas

Você diz trocar o array de erros por um objeto? Seria mais ou menos assim:

...
var erros = {};

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

Me refiro no lugar dos ifs , ao inves de varios Ifs usar um objeto literal. Será que da pra fazer isso ?

Até onde sei, não, você não vai conseguir fazer assim. Mas acho que dá pra fazer um laço com um único if dentro. O código fica menor, mas bem mais complexo.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software