Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Parâmetros nas funções

Boa tarde,queria saber primeiro se essa forma de organizar o meu código é boa e o que poderia ser melhorado(aproveitando que ele está pequeno) e também no caso das funções como (calculaImc , calculaPeso etc..) elas realmente não devem receber parâmetros ? Não peguei muito bom o que significa o que colocamos dentro dos parênteses nas funções

var pacientes = document.querySelectorAll(".paciente");


        for(i = 0; i < pacientes.length; i++) {

            var paciente = pacientes[i];

            var tdPeso = paciente.querySelector(".info-peso");
            var peso = tdPeso.textContent;

            var tdAltura = paciente.querySelector(".info-altura");
            var altura = tdAltura.textContent;

            var tdImc = paciente.querySelector(".info-imc");


            infosCertas();

        }


        function calculaImc(){

            var imc = peso / (altura * altura);                    
            tdImc.textContent = imc.toFixed(2);

        }



        function calculaPeso() {

            if( peso <= 0 || peso >= 500) {
                pesoCerto = false;
                paciente.classList.add("campo-invalido");
            }

        }

        function calculaAltura() {

            if( altura <= 0 || altura >= 3.0) {
                alturaCerta = false;
                paciente.classList.add("campo-invalido");
            }

        }

        function medidasCertas() {


                if(pesoCerto && alturaCerta) {

                    calculaImc();
                }
            }


            var alturaCerta = true;
            var pesoCerto = true;

        function infosCertas() {



            calculaPeso();

            calculaAltura();

            medidasCertas();


        }    

1 resposta
solução!

Yuri, boa tarde!

Os parâmetros servem para indicar que alguma função necessita de certas informações para funcionar, por exemplo, calculaImc(), não faria sentido calcular IMC se você não tem a altura nem o peso da pessoa, então ambos são parâmetros da função calculaImc().

Sobre o seu código, ele tem muitos espaços(enters). Eu pessoalmente deixaria assim:

var pacientes = document.querySelectorAll(".paciente");

for(i = 0; i < pacientes.length; i++) {
  var paciente = pacientes[i];

  var tdPeso = paciente.querySelector(".info-peso");
  var peso = tdPeso.textContent;
  var tdAltura = paciente.querySelector(".info-altura");
  var altura = tdAltura.textContent;

  var tdImc = paciente.querySelector(".info-imc");

  infosCertas();
}

function calculaImc(){
  var imc = peso / (altura * altura);
  tdImc.textContent = imc.toFixed(2);
}

function calculaPeso() {
  if( peso <= 0 || peso >= 500) {
    pesoCerto = false;
    paciente.classList.add("campo-invalido");
  }
}

function calculaAltura() {
  if( altura <= 0 || altura >= 3.0) {
    alturaCerta = false;
    paciente.classList.add("campo-invalido");
  }
}

function medidasCertas() {
  if(pesoCerto && alturaCerta) {
    calculaImc();
  }
}

var alturaCerta = true;
var pesoCerto = true;

function infosCertas() {
  calculaPeso();
  calculaAltura();
  medidasCertas();
}

O nome das funções das funções podem melhorar, como por exemplo infosCertas(), não fica claro o que essa função faz. Tente melhorar o nome delas.

Espero ter ajudado e bons estudos! :D