2015-11-03 49 views
1

任何縮短(或更有效)的寫入方法。準確地說,每天,每週...都從界面中取出(輸入[select])書寫開關的更好方法

switch(repeatFrequency) { 
       case "daily": 
        diffDays = 1; 
        break; 
       case "weekly": 
        diffDays = 7; 
        break; 
       case "weekly_2": 
        diffDays = 14; 
        break; 
       case "monthly": 
        diffDays=31;//we assume the worst case 
        break; 
       case "monthly_3": 
        diffDays = 92;//we assume the worst case 
        break; 
} 
+2

的更好的方法是使用哈希(地圖)對象:'鍵=> value' – hindmost

+0

是的,這是(應包括檢查有效性)與一種襯墊訪問一個簡單的對象。 –

回答

1

更好的方法是使用散列(地圖)對象。是這樣的:

var hash = { 
    'daily': 1, 
    'weekly': 7, 
    'weekly_2': 14, 
    'monthly': 31, 
    'monthly_3': 93, 
}; 
var diffDays = repeatFrequency in hash? hash[repeatFrequency] : default_value; 
+1

實際上,您可以跳過最後一行中的檢查 - 如果找不到匹配項,則它將被定義爲相同。 – Katana314

+0

感謝您的答案,但操作員'在'爲所有瀏覽器哈希工作? –

+0

@Anthony N.當然,[它](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in)。但是,沒有必要做這樣的檢查。您可以按照Katana314的建議簡單地指定'hash'值,除非您想爲變量設置默認值。 – hindmost