2017-11-18 119 views
1

我在学习如何使用javascript做switch语句。你们能帮我怎么把这个转换成switch语句吗?javascript:switch语句

 if (x == ix && y == iy){//should be the default 
      x.style.backgroundColor = 'white'; 
     } 
     if(x < ix){ 
      x.style.backgroundColor = 'red'; 
     } 
     else if(x > ix){ 
      x.style.backgroundColor = 'blue'; 
     } 
     if(y < iy){ 
      x.style.backgroundColor = 'green'; 
     } 
     else if(y > iy){ 
      x.style.backgroundColor = 'yellow'; 
     } 
+0

我不会重写这个使用switch语句,它也不是真的可能。顺便说一句,如果'x == ix'但是'y!= iy',那么你可能会遇到某种情况,通过裂缝落下。你应该仔细检查你的逻辑。 –

+0

你对结果做了一个小图示吗? 'y'的值优先于'x'的优先级。 –

+0

什么是'x','y','ix'和'iy'? – Taurus

回答

1

JavaScript不支持除严格等于switch es之外的操作。换句话说,您不能将该程序编写为switch

switch中,您可以将变量与不同的值(或case s)进行比较并检查它们是否相等。如果是,则执行case下的代码。

有一个缺点,但是,它是你可以将此代码转换成易于开关:

if (a === 1) { 
    console.log("one"); 
} else if (a === 2) { 
    console.log("two"); 
} else { 
    console.log("Out of range! :("); 
} 

switch上面的代码是

switch (a) { 
    case 1: 
    console.log("one"); 
    break; 

    case 2: 
    console.log("two"); 
    break; 

    default: 
    console.log("Out of range! :("); 
    break; 
} 

但你不能做与包含关系操作的代码相同。

switch (a) { 
    case > 1: // throws error 
    doSomething(); 
    break; 
} 
+1

那么...这里有一些你可能会觉得奇怪的东西https://jsfiddle.net/DerekL/jpw147pr/ –

+1

我看到我来自php后端试图如果JavaScript可以做这样的一个php –

+0

@Derek朕会功夫,这很有趣,但不幸的是,这不是我的意思。 – KarthaCoder

0

希望这可以帮助您转换上述条件。

switch (new Date().getDay()) { 
    case 0: 
     day = "Sunday"; 
     break; 
    case 1: 
     day = "Monday"; 
     break; 
    case 2: 
     day = "Tuesday"; 
     break; 
    case 3: 
     day = "Wednesday"; 
     break; 
    case 4: 
     day = "Thursday"; 
     break; 
    case 5: 
     day = "Friday"; 
     break; 
    case 6: 
     day = "Saturday"; 
}