如果条件javascript优化

时间:2015-10-21 05:45:37

标签: javascript if-statement

我只是一个javascript的新手, 这就是我在javascript中写条件的方式,

function setAccType(accType) {
    if (accType == "PLATINUM") {
        return "Platinum Customer";
    } else if (accType == "GOLD") {
        return "Gold Customer";
    } else if (accType == "SILVER") {
        return "Silver Customer";
    }
},

有更好的方法吗?

4 个答案:

答案 0 :(得分:6)

您可以将对象用作地图:

function setAccType(accType){
  var map = {
    PLATINUM: 'Platinum Customer',
    GOLD: 'Gold Customer',
    SILVER: 'Silver Customer'
  }

  return map[accType];
}

或者@Tushar指出:

var accountTypeMap = {
  PLATINUM: 'Platinum Customer',
  GOLD: 'Gold Customer',
  SILVER: 'Silver Customer'
}

function setAccType(accType){  
  return accountTypeMap[accType];
}

答案 1 :(得分:2)

假设accType将始终传递给函数。

  1. 将字符串转换为第一个大写字母和其他小字典
  2. 客户附加到
  3. 代码:

    return accType[0] + accType.slice(1).toLowerCase() + ' Customer';
    

    代码说明:

    1. accType[0]:获取字符串的第一个字符
    2. accType.slice(1).toLowerCase():获取除第一个字符
    3. 以外的字符串

答案 2 :(得分:2)

var TYPES = {
  "PLATINUM":"Platinum Customer",
  "GOLD":"Gold Customer",
  "SILVER":"Silver Customer"
}

function getType(acctType){
    return TYPES[acctType];
}

答案 3 :(得分:1)

如果要将相同的变量与不同的值进行比较,并在不同的情况下发生不同的事情,请尝试使用switch块:

function setAccType(accType){
    switch(accType) {
        case "PLATINUM" :
            return "Platinum Customer";
        case "GOLD":
            return "Gold Customer";
        case "SILVER":
            return "Silver Customer";
     }
 }