Quiero tener una lógica que devuelva un valor basado en 2 variables: un valor recibido y un valor actual. Lo he simplificado de múltiples else-if a un operador.
El código es algo como esto:
var receivedState = 2; var currentState = 1; var allowedState = true; if(receivedState == 2 && currentState !== 1) { allowedState = 1; } else if ((receivedState == 3 || 4 || 5) && (currentState !== 2)) { allowedState = 2; } console.log(allowedState);
Entonces, lo que estoy tratando de hacer es si el estado recibido es "2" Y el estado actual no es "1", entonces quiero establecer el valor de allowState en 1.
Lo que sucede ahora es que establece el valor en 2.
Para el otro sí funciona. Cuando el estado es 3, 4 o 5 y el estado actual no es 2, el valor de allowState se establece en 2, excepto cuando el estado actual es diferente al valor de 2, entonces el valor de allowState es 2.
¿Cómo cambio mi código para que la lógica funcione de la siguiente manera?
Si el valor recibido es 2 y el valor actual no es 1, devuelva 1; de lo contrario, no haga nada (devuelva verdadero). Si el valor recibido es uno de 3, 4 o 5 y el valor actual no es 2, devuelva 2; de lo contrario, no haga nada.
Gracias por adelantado.