2017-10-21 291 views
-4

Pourquoi pas ce travail:Chained logique OU comparaison

if (x != (a || b || c)) { 
    doStuff(); 
} 

Il est destiné à vérifier si x est égal à un pas OU b ou c.

EDIT: Comment puis-je vérifier si x n'est PAS égal à un OR b OR c?

EDIT: Ok, c'est un doublon. Que dois-je faire maintenant, prendre des points négatifs même après avoir réalisé mon erreur? : P

+2

Il devrait être 'si (x == un x || == b || x = = c) '. Qu'est-ce que votre expression signifie, la valeur peut être soit 'a',' b' ou 'c' et cette valeur ne doit pas être égale à' x'. Comme alternative, vous pouvez essayer '[a, b, c] .indexOf (x) <0' – Rajesh

+0

' (un || b || c) 'retournera la première variable truey et est évalué avant'! = ' – charlietfl

+0

' [a, b, c] .indexOf (x) <0' fait: D –

Répondre

-2

Pour utiliser des multiples valeurs comme vous voulez juste:!


 
var x = 'x'; 
 
var a = 'a'; 
 
var b = 'b'; 
 
var c = 'c'; 
 

 
function doStuff() { 
 
    console.log(1) 
 
} 
 

 
// exemple 1 
 
if(x == a || x == b || x == c) { 
 
    doStuff(); 
 
} 
 

 
function isSameValue(element, index, array) { 
 
    return element === x; 
 
} 
 

 
// exemple 2 
 
if([a, b, c].some(isSameValue)) { 
 
    doStuff(); 
 
} 
 

 
// exemple 3 
 
[a, b, c].includes(x);

+1

vous devez avoir une meilleure compréhension du fonctionnement de l'opérateur virgule – charlietfl

+1

Cela retournera toujours 'c' indépendamment des valeurs. Cela pourrait aider: https://stackoverflow.com/questions/3561043/what-does-a-comma-do-in-javascript-expressions – Rajesh

+0

Désolé ma première réponse, je tombe dans un piège quand je mets c === x et courir. HAHAHA. – joelbarbosa