1

for配列を調べて日付を表示するループがあります。月を数字からテキストに変換するコードをいくつか書きました。コードは次のようになります。

for (var i=0; i < arrayLength; i++) {
  //==== MONTH DATA
  var month = data[1];

  //==== DECLARE MONTH
  if (month == '01') { var month = "Jan" }
  if (month == '02') { var month = "Feb" }
  if (month == '03') { var month = "Mar" }
  if (month == '04') { var month = "Apr" }
  if (month == '05') { var month = "May" }
  if (month == '06') { var month = "June" }
  if (month == '07') { var month = "July" }
  if (month == '08') { var month = "Aug" }
  if (month == '09') { var month = "Sept" }
  if (month == '10') { var month = "Oct" }
  if (month == '11') { var month = "Nov" }
  if (month == '12') { var month = "Dec" }

  alert(month);
}

ここで、サイト全体のさまざまな for ループで月のコンバーターを使用したいと考えています。だから私はそれを毎回起動できる関数に入れるようなことをしたい. 例:

function declareMonth(){
  //==== DECLARE MONTH
  if (month == '01') { var month = "Jan" }
  if (month == '02') { var month = "Feb" }
  if (month == '03') { var month = "Mar" }
  if (month == '04') { var month = "Apr" }
  if (month == '05') { var month = "May" }
  if (month == '06') { var month = "June" }
  if (month == '07') { var month = "July" }
  if (month == '08') { var month = "Aug" }
  if (month == '09') { var month = "Sept" }
  if (month == '10') { var month = "Oct" }
  if (month == '11') { var month = "Nov" }
  if (month == '12') { var month = "Dec" }
}

for (var i=0; i < arrayLength; i++) {
  //==== MONTH DATA
  var month = data[1];

  declareMonth();

  alert(month);
}

ただし、これは機能しません。これを行う方法を誰か説明できますか?

4

2 に答える 2

3

月の値を返す必要があります。また、関数を適切に記述する必要があります。

function getMonthName(n) {
    var months = ["Jan", "Feb", ... ];  // omitted for brevity
    return months[n - 1];
}

使用法:

for (var i=0; i < arrayLength; i++) {
  var month = data[1];
  var name = getMonthName(month);
  alert(name);
}

注意:undefined指定された月が範囲外の場合、結果は次のようになります。

于 2013-05-12T12:51:12.367 に答える