Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

Haz lo que hicimos en el aula

const $ = document.querySelector.bind(document);
const $$ = document.querySelectorAll.bind(document);
const tag = document.createElement.bind(document);

const calcularIMC = (peso, altura) => (peso / altura ** 2).toFixed(2);

const actualizarPaciente = (paciente) => {
  let [peso, altura, imc] = [
    paciente.querySelector(".info-peso").textContent,
    paciente.querySelector(".info-altura").textContent,
    paciente.querySelector(".info-imc"),
  ];

  let err = false;

  if (peso <= 0 || peso > 500) {
    imc.textContent = "Peso no válido";
    err = true;
  } else if (altura <= 0 || altura > 2.0) {
    imc.textContent = "Altura no válida";
    err = true;
  } else imc.textContent = calcularIMC(peso, altura);

  if (err) {
    paciente.classList.add("paciente-error");
  }
};

for (const paciente of $$(".paciente")) {
  actualizarPaciente(paciente);
}

const botonAdicionar = $("#adicionar-paciente");
const formAdicionar = $("form");
const tablaPacientes = $("#tabla-pacientes");

const agregarPaciente = (paciente) => {
  let elementoPaciente = tag("tr");

  elementoPaciente.classList.add("paciente");
  for (const attr in paciente) {
    elementoPaciente.appendChild(
      (() => {
        let td = tag("td");
        td.className = `info-${attr}`;
        td.textContent = paciente[attr].value;
        return td;
      })()
    );
  }

  actualizarPaciente(tablaPacientes.appendChild(elementoPaciente));
};

botonAdicionar.addEventListener("click", (event) => {
  event.preventDefault();
  let { nombre, peso, altura, gordura } = formAdicionar;
  agregarPaciente({ nombre, peso, altura, gordura, imc: 0 });
});
1 respuesta
solución!

Hola Joel, espero que estés bien!

Gracias por compartir tu código con nosotros. Si tiene alguna pregunta sobre el contenido del curso, estamos aquí para ayudarlo. ¡Sigue practicando! ¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓.