在switch语句中平等对待两个变量

时间:2014-03-25 14:34:43

标签: javascript switch-statement var equivalent

我有两个变量,我想通过相同的开关语句运行相同的结果

var n1 = first_number;
var n2 = second_number;

switch(for n1 and n2 at the same time){
case "if n1 or n2 depending on which is being tested = something":
do something to the one of n1 or n2 that matches the case
};

对不起的解释感到抱歉,我试过但我不能更好地解释

2 个答案:

答案 0 :(得分:1)

正如其他人所说,if似乎更适合你想做的事。

话虽如此,有一种方法可以“哄骗”#34; switch执行您的要求,并且在非常罕见的情况下有用。使用您描述的逻辑,您将执行此操作:

var n1 = first_number;
var n2 = second_number;

switch(true) {
    case (n1 === something || n2 === something) :
        . . . do stuff . . .
};

在极少数情况下,case语句的落后可以使这种方法变得有用,但它也可以使其正确设置甚至更加棘手。

同样,我强烈建议改为使用if语句。

答案 1 :(得分:0)

var n1 = 'first_number';
var n2 = 'second_number';

if (n1 && n2) {
    //Do something with n1 and n2
} else if (n1 && !n2) {
    //Do something with n1    
} else if (!n1 && n2) {
    //Do something with n2
} else {
    //Default   
}

如果你喜欢它更复杂

var n1 = 'first_number';
var n2 = 'second_number';
var n = [n1, n2];

switch (n.join(';')) {
    case "first_number;second_number":
        //Do something
        break;
    case "first_number":
        //Do something
        break;
    case "second_number":
        //Do something
        break;
    default:
        console.log('default');
        break;
}