2017-04-03 12 views
1
function getFieldType(value){ 
    var type = ""; 
    switch(value){ 
     case "TEXT_BOX": 
      type=FieldTypeEnum.TEXT_BOX; 
      break; 
     case "PASSWORD": 
      type=FieldTypeEnum.PASSWORD; 
      break; 
     case "CHECK_BOX": 
      type=FieldTypeEnum.CHECK_BOX; 
      break; 
     case "RADIO_BUTTON": 
      type=FieldTypeEnum.RADIO_BUTTON; 
      break; 
     case "DROP_DOWN": 
      type=FieldTypeEnum.DROP_DOWN; 
      break; 
     case "SEARCH_CARD_BOX": 
      type=FieldTypeEnum.SEARCH_CARD_BOX; 
      break;   
     case "STATE_DROP_DOWN": 
      type=FieldTypeEnum.STATE_DROP_DOWN; 
      break; 
     case "ID_DROP_DOWN": 
      type=FieldTypeEnum.ID_DROP_DOWN; 
      break; 
     case "GENDER_DROP_DOWN": 
      type = FieldTypeEnum.GENDER_DROP_DOWN; 
      break; 
     default: 
      type = ""; 
    } 

    return type; 
} 

ドロップダウンボックス(STATE_DROP_DOWN, ID_DROP_DOWN, GENDER_DROP_DOWN)を1つにまとめたいと思います。 以下のような意味があります。スイッチケースと文字列の一致

case String.endwith("_DROP_DOWN"): 
    type=FieldTypeEnum.ID_DROP_DOWN; 
    break; 

JavaScriptで可能ですか?はいの場合はどうですか?

答えて

0

ケースに3進演算子を置き、末尾が"DROP_DOWN"の場合はvalue、それ以外の場合は空白文字列を返します。

switch(value){ 
    case value.endsWith("_DROP_DOWN") ? value : '' { 
    type=FieldTypeEnum.ID_DROP_DOWN; 
    break; 
} 
} 
1

それはあなただけの文字列の等価性をテストするときのように、また真かに評価したり、より複雑な文(trueまたはfalseに評価される)の文字列の等価性を比較することができjavascriptのスイッチ/ case文には、可能ですfalse(例:String.endwith("_DROP_DOWN"))。しかし、個人的に私は次のことを好むだろう:

STATE_DROP_DOWN: 
    // intentional fall through 
ID_DROP_DOWN: 
    // intentional fall through 
GENDER_DROP_DOWN: 
    //.. do your stuff 
    break; 

私はこの方法は、それはあなたが特定の状況で下落している場合を切り替え、それを通してより明確であると考えています。