Evita el código repetitivo
Mejora la flexibilidad, legibilidad y escalabilidad de tu código utilizando un Objeto en lugar de Switch.
6 de enero de 2024
¿Por qué un objeto?
Si vienes de otro lenguaje de programación como C o C++ seguro conoces los unordered_map
(HashMap), o lenguajes como Python con los diccionarios, es un concepto parecido llamado Tabla de búsqueda o Mapeo de valores donde se usa una estructura de Key-Value
.
En algunos lenguajes de programación se puede poner el tipo de variable tanto para el key
como para el value
.
En JavaScript, estás Tablas de búsqueda o Mapeo de valores son simplemente un Objeto de JavaScript. La estructura se verá más adelante en este artículo.
Error con Switch
En ocaciones, el switch
se utiliza para ciertos usos, pero esto trae un código muy grande y/o desordenado.
Por ejemplo, dado el caso de crear una función donde reciba ciertos valores, y regresar otros dependiendo de ese valor.
JS
function queContinente(pais) {switch(pais){case "México":return "América"case "España":return "Europa"case "Japón":return "Asia"case "Egipto":return "África"case "Australia":return "Oceanía"default:return "No se encuentra ese país"}}
A pesar de que el código es correcto, puede verse un poco desordenado, y tedioso de leer. Para solucionar esto, se usaría la estructura de un Objeto, de la manera en la que se había planteado.
Para dar un ejemplo más práctico y visualmente entendible, vamos a imaginar el caso de una función donde dado el nombre de de un país, regresa el continente al que pertenece.
JS
function queContinente(pais) {const map = {"México": "América","España": "Europa","Japón": "Asia","Egipto": "África","Australia": "Oceanía"}// Regresa el continente de acuerdo al país, si no se encuentra, devuelve un valor defaultreturn map[pais] ?? "No se encuentra ese país"}
Como se puede ver, el código es más corto, fácil de entender e incluso más fácil de modificar.
Aunque esto parece no tener muchos casos prácticos de uso, puede ser muy útil, ya que para casos más complejos, se podría recibir o devolver cualquier tipo de dato, incluyendo otros Objetos o estructuras más complejas.