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. Key-Value Table

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 quePais(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 default
return 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.