-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcalculo.peso.js
75 lines (61 loc) · 2.48 KB
/
calculo.peso.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
function calculo_imc(peso, altura) {
if (isNaN(peso) || isNaN(altura)) {
const msg = "Por favor, introducir datos válidos en los campos.";
console.log(msg);
return null;
}
if (typeof peso === "string" || typeof altura === "string") {
const msg = "Deben ingresarse datos numéricos.";
console.log(msg);
return null;
}
if (peso <= 0 || altura <= 0) {
const msg = "Error: división por 0 o cantidades negativas no está definida.";
console.log(msg);
return null;
}
// En caso de haber un error, devolver un mensaje, un string con el mensaje de error...
// No creo que sean las mejores prácticas... pero bueno.
return parseFloat(peso / altura ** 2).toFixed(1);
}
// Lógica con el Botón calcular.
document.getElementById("boton-calcular").addEventListener("click", function () {
const peso = parseFloat(document.getElementById("input-peso").value);
const altura = parseFloat(document.getElementById("input-altura").value);
const resultado = calculo_imc(peso, altura);
let nivel_peso = "";
// Calculando si el manin está bien de peso...
if (resultado < 18.5) {
nivel_peso = "con Bajo peso";
} else if (resultado >= 18.5 && resultado < 25) {
nivel_peso = "Saludable";
} else if (resultado >= 25 && resultado < 30) {
nivel_peso = "con Sobre peso";
} else {
nivel_peso = "con Obesidad";
}
let msg_resultado = `El peso calculado es de ${resultado}.`;
let msg_extra = `La persona tiene un nivel de peso ${nivel_peso.toLowerCase()}.`;
const alerta = document.getElementById("alerta-mostrar-resultado");
let resultadoOk = resultado === null ? false : true;
if (peso < 45) {
msg_resultado = "Como que está flaquito el chamaco no... ".concat(msg_resultado);
}
if (altura < 1.4) {
msg_extra = "Qué chiquito jajajajaj... ".concat(msg_extra);
}
if (!resultadoOk) {
msg_resultado = `Evidentemente, no sabe usted un boniatillo de cómo insertar datos en una página web. Inserte los datos de nuevo, bendiciones.`;
alerta.classList.replace("alert-success", "alert-danger");
} else {
alerta.classList.remove("alert-danger");
alerta.classList.add("alert-success");
}
document.getElementById("mostrar-resultado").textContent = msg_resultado;
document.getElementById("mostrar-info-adicional-peso").textContent = msg_extra;
alerta.classList.remove("d-none");
// Agregando un setTimeout() se puede aplicar una especie de desfaz.
setTimeout(() => {
alerta.classList.add("show");
}, 10);
});