Tengo una condición if-else en js como se muestra a continuación y espero que la condición else se ejecute para la lógica a continuación, porque la ID de destino está en else if , pero siempre entra en la condición if . probado con == y === también.
¿Qué me estoy perdiendo? Nota: La lógica debe ser compatible con ie11
// destinationId is generated dynamically but i have assigned it to a variable for reference Code 1 var fromId = "createNotification"; var destinationId ="detailedDescription"; if ((fromId == "createNotification") && (destinationId == "carNumber" || "setNumber")) { //logic to execute } else if ((fromId == "createNotification") && (destinationId == "faultRepBy" || "detailedDescription")) { //logic to execute } code 2 if ((["createNotification"].indexOf(fromId) > -1) && (["carNumber" || "setNumber"].indexOf(destinationId) > -1)) { //logic to execute } else if ((["createNotification"].indexOf(fromId) > -1) && (["faultRepBy" || "detailedDescription"].indexOf(destinationId) > -1)) { //logic to execute }Cambie su condición de la siguiente manera:
if ((fromId == "createNotification") && (destinationId == "carNumber" || destinationId == "setNumber")) { console.log("in if") } else if ((fromId == "createNotification") && (destinationId == "faultRepBy" || destinationId == "detailedDescription")) { console.log("in else if") }