2017-11-18 100 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"; 
}