我有一个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循环中使用month转换器。因此,我想做一些类似的事情,将其放到我可以每次触发的函数中。例如:

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);
}


但是,这不起作用。谁能解释如何做到这一点?

最佳答案

您需要返回月份值。您还需要正确编写函数:

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

10-07 13:37
查看更多