在Javascript中利用JSON簡化資料對應

假設在JavaScript中我們想做月份資料轉換的動作,比方說從資料庫中撈的月份是英文Mar要轉換成3,如下所示,m變數由英文月份轉換為數字1~12:


function translate_month(m){
 switch(m){
  case "Jan":m="1";break;
  case "Feb":m="2";break;
  case "Mar":m="3";break;
  case "Apr":m="4";break;
  case "May":m="5";break;
  case "Jun":m="6";break;
  case "Jul":m="7";break;
  case "Aug":m="8";break;
  case "Sep":m="9";break;
  case "Nov":m="10";break;
  case "Oct":m="11";break;
  case "Dec":m="12";break;
 }
return m;
}


但是這樣的寫法會比較長,"case"、"break"重覆寫一堆,尤其當對應的資料很多的時候,感覺很累贅。其實你可以參考JSON格式的做法來設計一個對照,如下所示。

function translate_month(m){
 var mons = { "Jan": "1", "Feb": "2", "Mar": "3", "Apr": "4", "May": "5", "Jun": "6", "Jul": "7", "Aug": "8", "Sep": "9", "Nov": "10", "Oct": "11", "Dec": "12" };
 return m=mons["Feb"];
}


變數m就會轉成數字的月份了。這樣是不是更有簡約的美?

沒有留言:

張貼留言