Ejercicio resuelto: semáforo con JavaScript

En este post veremos la solución a un ejercicio sencillo de JavaScript. Se trata de crear una función que regrese “amarillo”, “rojo”, o “verde” dependiendo del argumento que reciba indicando la luz encendida actualmente.

La función va a indicar cuál es la luz que debería encender de acuerdo a la que está encendida actualmente.

Si la luz es “rojo” entonces debe mostrar “verde”, si es “verde” debe mostrar “amarillo” y finalmente si es “amarillo” debe mostrar “rojo”.

Por cierto, este es un ejercicio de Codewars.

Semáforo con JavaScript

La función es sencilla y se puede resolver usando if. Veamos la definición de la función:

Pruébala aquí.

Son 3 if que regresan el color dependiendo del actual.

Esta solución tiene alternativas; por ejemplo, usando el operador ternario o switch.

Otra versión usando hashmap

En estructura de datos un hashmap es un diccionario que tiene claves y valores. Al consultar una clave, regresa el valor asociado con esa clave.

Un hashmap o diccionario en JavaScript es un simple objeto. Como la luz actual cambia únicamente a un valor podemos definir un diccionario:

Cada valor tiene su equivalente. Si accedemos a diccionario["amarillo"] devolverá "rojo" y lo mismo para otros valores, así que basta con regresar diccionario[valor] y nos ahorramos ifs.

Combinándolo con las funciones flecha podemos hacer una función más corta que queda así:

Pruébalo aquí.

Los hashmap sirven para muchas cosas más, y son extremadamente rápidos, pues su tiempo de acceso es constante y no necesitamos andar buscando la clave, eso sí, debemos programar de tal manera que se pueda saber la clave de lo que necesitamos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *