2015-10-21 2 views
2

Я просто новичок в JavaScript, это, как я пишу, если условие в 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"; 
    } 
}, 

Есть ли лучший способ сделать это?

+0

Запятая после функции не требуется – Tushar

ответ

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]; 
} 
+0

'map' может быть перемещен вне функции – Tushar

2

Предполагается, что accType будет передан функции.

  1. Преобразование строки в первой столице и других малых случае
  2. Append клиента ему

Код:

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

код Пояснение:

  1. accType[0]: Получить первый символ строки
  2. accType.slice(1).toLowerCase(): Получить строку, за исключением первого символа
1

Попробуйте использовать switch блока, если вы сравниваете то же переменное против различных значений и имеющими разные вещи происходят в разных случаях:

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

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

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

Смежные вопросы