Ejercicio 14:

Programa una función para convertir grados Celsius a Fahrenheit y viceversa, por ejemplo miFuncion(0,"C") devolverá 32°F

La forma en que lo hice:

Creo la función expresada convertirGrados la cual va a recibir los parámetros gradosque lo inicializo en undefines y el parámetro unidad que lo inicializo en undefined.

Con los if valido que no ingresen algo(vacío) o que ingrese un valor que no sea número y hago las mismas validaciones para el segundo parámetro (unidad) en este cao veo que no sea string.

Como en la variable unidad solo espero tener la letra C o F, con un if valido que no ingrese más de un caracter con unidad.length o que no se ingrese otra letra distinta a S o la G (con una expresion regular).

Si unidad es C entonces paso de grados a Celsius, utlizo .Math.round() para redondear el resultado. Aplico la fórmula: para pasar de celsius a fharenheit : X celsius 9/5 + 32 = Y fharenheit

Si unidad es F entonces, . Aplico la fórmula para pasar de fharenheit a celsius: Y fharenheit - 32 * 5/9 = X celsius

Y finalmente en el else hago con console.error, pero como antes tuve todas mis validaciones, nunca va a pasar lo de este else.

const convertirGrados = (grados = undefined, unidad=undefined)=>{ if(grados === undefined) return console.warn( "No ingresaste grados a convertir"); if(typeof grados !== "number") return console.error(`El valor asignado ${grados} no es un número`); if(unidad === undefined) return console.warn( "No ingresaste la unidad de grados a convertir"); if(typeof unidad !== "string") return console.error(`El valor de ${unidad} asignado no es una cadena de texto`); if(unidad.length !== 1 || !/(C|F)/.test(unidad)) return console.warn("Valor de unidad inválido"); if(unidad === "C"){ return console.info(`${grados}ºC = ${Math.round((grados*(9/5))+32)}ºF`); }else if(unidad === "F"){ return console.info(`${grados}ºF = ${Math.round((grados-32)*(5/9))}ºC`); } else { return console.error("El tipo de grados a convertir no es válido"); } }

Llamo a la función sin parámetros para ver si funciona la validación

convertirGrados();

Llamo a la función con una string como primer parámetro para ver si funciona la validación

convertirGrados("2");

Llamo a la función con un número como primer parámetro pero sin el segundo parámetro para ver si funciona la validación

convertirGrados(2)

Llamo a la función con un número como primer parámetro y con un boolean como segundo parámetro para ver si funciona la validación

convertirGrados(2,true);

Llamo a la función con un número como primer parámetro y con un una string que tenga más de un carater como segundo parámetro para ver si funciona la validación

convertirGrados(2,"Hola");

Llamo a la función con un número como primer parámetro y con un una string que tiene un sol ocaracter, pero es distinto de C y F, como segundo parámetro para ver si funciona la validación

convertirGrados(2,"e");

Llamo a la función con dos parámetros correctos

convertirGrados(0,"C");

Llama a la función con dos parámtros correctos

convertirGrados(32,"F");

Con F12 pueden inspeccionar 🧐 por consola el código en acción.