2016-06-16 71 views
-1

像問題所述,我試圖列出一年中的月份月份名稱的相應縮寫,但我堅持如何使警報打印'月1日是1月'而不是'月0日是1月'。這是我的代碼中的代碼中的代碼,結果是this。我如何從1月份的月份開始獲得結果?謝謝我想使用JavaScript數組列出一年的月份,但我堅持如何使月份1月1日而不是月份0

 var months =["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 
     var message = ""; 
     for (i in months) { 
      message += 'Month ' + i + ' is ' + months[i] + '\n'; 
     } 
     alert(message); 
+3

洛爾?附加問題? :D – nicael

+2

我投票結束這個問題作爲題外話,因爲它表明沒有努力解決這個問題。 – ceejayoz

+0

我從字面上花了差不多一個小時就可以了,而我所缺少的是圍繞i + 1的缺口...... – theJcode24

回答

2

不要使用for..in循環迭代數組。它的目的是遍歷對象鍵,並將i是一個字符串(因此爲什麼i + 1不工作)。

使用正常for循環:

var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; 
 
var message = ""; 
 
for (var i = 0; i < months.length; i++) { 
 
    message += 'Month ' + (i + 1) + ' is ' + months[i] + '\n'; 
 
} 
 
alert(message);

+0

非常感謝您的回答!我嘗試改變一段時間或做while循環,但我沒有考慮定期的循環。 – theJcode24

+0

順便說一句,你可以很容易地將一個字符串轉換爲一個數字加上'+ i',但仍然有[幾個原因](http://stackoverflow.com/a/3010848/5743988)不能使用'for ..與陣列。 – 4castle

+0

對不起,加上'+ i'是什麼? – theJcode24