2016-11-15 210 views
-1

我有一個像下面的一些代碼:Javascript switch語句?

for (var i = 0; i < $scope.Option.length; i++) { 
    var option = $scope.Option[i].Code; 

    if (option == "A") { 
     $scope.aSelected = true; 
     break; 
    } 
} 

for (var i = 0; i < $scope.Option.length; i++) { 

    var option = $scope.Option[i].Code; 

    if (option == "B") { 
     $scope.bSelected = true; 
     break; 
    } 
} 

是否有可能在switch語句中糾正這個象下面這樣:

for (var i = 0; i < $scope.Option.length; i++) { 

    var option = $scope.Option[i].Code; 

    switch (option) { 
     case "A": 
      $scope.aSelected = true; 
      break; 
     case "B": 
      $scope.bSelected = true; 
      break; 
     default: 
      console.log('unrecognized option'); 
    } 
} 

這實際上是在開關的情況下不正確,因爲第一個選項可能A會跳出循環,然後例如,如果'B'是集合的後面位置的選項,它將永遠不會得到bSelected = true;

+0

「在開關盒中這實際上是不正確的嗎?」 - 你測試過了嗎?它是否有你猜測它可能有的行爲? – Quentin

+0

@Quentin - 好點 - 應該只是運行一個快速測試 - 道歉 –

回答

1

這是正確的,因爲SWITCH內部的BREAK會突破它,而不是整個FOR循環,因此它也會檢查B。

+0

謝謝 - 應該只是運行一個快速測試自己 –