Tengo un formulario que calcula la edad de una persona. Escribí dos funciones. el primero hace el cálculo y el segundo devuelve alguna sentencia if/else. Tengo un problema con la sentencia if/else. Sea cual sea la edad de la persona, JS siempre devuelve el segundo si. No puedo entender cómo puedo resolver este problema.
¿Alguien me puede ayudar?
HTML
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title></title> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="stile.css"> </head> <body> <form id="anni"> <input type="text" id="annoattuale"> <input type="text" id="nascita"> <button type="submit">Calcola</button> </form> <script src="script.js"></script> </body> </html>CÓDIGO JS
anni.onsubmit = function (e) { e.preventDefault() let attualita = document.querySelector("#annoattuale").value let nascita = document.querySelector("#nascita").value let calcolaEta = (attuale, annodiNascita) => attuale - annodiNascita let calcolatriceEta = calcolaEta(attualita, nascita) condizioniEta(calcolatriceEta) function condizioniEta (calcoloEta) { if(calcoloEta === 18) { console.log(`Hai ben ${calcoloEta}! Sei appena maggiorenne!`) } else if(calcoloEta >= 29) { console.log(`Hai ben ${calcoloEta}! Sei un giovane piuttosto maturo`) } else if(calcoloEta >= 49) { console.log(`Hai ben ${calcoloEta} e ti stai avvicinando alla vecchiaia`) } else if(calcoloEta >= 59) { console.log(`Hai ben ${calcoloEta} e sei entrato nella vecchiaia`) } else if(calcoloEta >= 69) { console.log(`Hai ben ${calcoloEta}... Ti potrebbe rimanere poco tempo da vivere...`) } else if(calcoloEta >= 89) { console.log(`Hai ben ${calcoloEta}... La morte è quasi vicina...`) } }Entonces, un problema fue el uso del mismo nombre para una variable y una función. El otro problema fue el hecho de que no creaste condiciones con "límites".
Por ejemplo, imagine que la edad es 60, este número es mayor o igual a 29, por lo que será cierto en este otro caso y entrará en él. Entonces necesitas crear una tarifa [Máximo y Mínimo]
anni.onsubmit = function (e) { e.preventDefault() let attualita = document.querySelector("#annoattuale").value let nascita = document.querySelector("#nascita").value let calcolaEta = (attuale, annodiNascita) => attuale - annodiNascita let calcolatriceEta = calcolaEta(attualita, nascita) condizioniEta(calcolatriceEta) function condizioniEta (calcoloEtaChanged) { if(calcoloEtaChanged === 18) { console.log(`Hai ben ${calcoloEtaChanged}! Sei appena maggiorenne!`) } else if(calcoloEtaChanged >= 29 && calcoloEtaChanged >= 48) { console.log(`Hai ben ${calcoloEtaChanged}! Sei un giovane piuttosto maturo`) } else if(calcoloEtaChanged >= 49 && calcoloEtaChanged <= 58) { console.log(`Hai ben ${calcoloEtaChanged} e ti stai avvicinando alla vecchiaia`) } else if(calcoloEtaChanged >= 59 && calcoloEtaChanged <= 68) { console.log(`Hai ben ${calcoloEtaChanged} e sei entrato nella vecchiaia`) } else if(calcoloEtaChanged >= 69 && calcoloEtaChanged <= 88) { console.log(`Hai ben ${calcoloEtaChanged}... Ti potrebbe rimanere poco tempo da vivere...`) } else if(calcoloEtaChanged >= 89) { console.log(`Hai ben ${calcoloEtaChanged}... La morte è quasi vicina...`) } } }