Pessoal, porque o array tem que estar dentro da função de validação de pacientes?
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;
}
E depois ele é inserido também por fora da função:
botao.addEventListener("click", function (event) {
event.preventDefault(); // Limpando configurações padrão do botão;
let paciente = obtemPacienteFormulario(form);
**var erros = []**;
if(erros.length > 0) {
console.log(erros);
return;
} else {
let pacienteTr = document.createElement("tr");
let tabelaPacientes = document.querySelector("#tabela-pacientes");
tabelaPacientes.appendChild(pacienteTr);
pacienteTr.appendChild(criaTd(paciente.nome,"info-nome"));
pacienteTr.appendChild(criaTd(paciente.peso,"info-peso"));
pacienteTr.appendChild(criaTd(paciente.altura,"info-altura"));
pacienteTr.appendChild(criaTd(paciente.gordura,"info-gordura"));
pacienteTr.appendChild(criaTd(paciente.imc,"info-imc"));
form.reset();
}
No meu entendimento, ao declará-lo como var mesmo que fora da função e dar um erros.push dentro da função ele já entenderia e atualizaria o array. Não é assim?