切换案例与字符串匹配

时间:2017-04-03 17:13:50

标签: javascript

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)合并为一个。 意味着我想要下面的东西:

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

可以在JavaScript中使用吗?如果是,那怎么样?

2 个答案:

答案 0 :(得分:1)

在javascript switch / case语句中,您可以比较字符串相等性(评估为true或false)或更复杂的语句,就像测试字符串相等时一样,也可以计算为true或false(例如{ {1}})。不过我个人更喜欢以下内容:

String.endwith("_DROP_DOWN")

我相信通过这种方式可以更清楚地了解您在某种情况下会遇到哪种情况。

答案 1 :(得分:0)

您可以在案例中放置一个三元运算符,并测试它是否以"DROP_DOWN"返回value结束,否则为空白字符串。

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