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.
La función es sencilla y se puede resolver usando if. Veamos la definición de la función:
const actualizarSemaforo = (colorActual) => {
if (colorActual === "amarillo") return "rojo";
if (colorActual === "rojo") return "verde";
if (colorActual === "verde") return "amarillo";
}
// Probar
const colores = [
"amarillo", "rojo", "verde"
];
colores.forEach(color => {
console.log(`Para ${color} la siguiente luz debe ser: ${actualizarSemaforo(color)}`)
});
Son 3 if que regresan el color dependiendo del actual.
Esta solución tiene alternativas; por ejemplo, usando el operador ternario o switch.
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:
const diccionario = {
verde: "amarillo",
amarillo: "rojo",
rojo: "verde",
};
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 if
s.
Combinándolo con las funciones flecha podemos hacer una función más corta que queda así:
const actualizarSemaforo = colorActual => ({
verde: "amarillo",
amarillo: "rojo",
rojo: "verde",
}[colorActual])
// Probar
const colores = [
"amarillo", "rojo", "verde"
];
colores.forEach(color => {
console.log(`Para ${color} la siguiente luz debe ser: ${actualizarSemaforo(color)}`)
});
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.
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.