3
我遇到了一個問題,試圖完成我的代碼。我試圖讓代碼在幾個不同的行中打印數組。這是假設是這樣的:*日曆程序*無法爲此日曆程序編寫循環以正常顯示
好,這裏是更新的代碼。我一直在努力,它變得越來越好!然而,我現在的問題是想知道爲了創建空格,其中「0」和「1」目前在代碼的輸出中需要做什麼。我想我只需要插入: calDaysOfWeek.unshift(); 或可能: calDaysOfWeek.shift(); 我只是不知道該把它放在哪裏。如果我能弄清楚,我應該可以縮短代碼中的日期(例如M到週一或T到週二)。
/*Write a program called calendar.js that displays a calendar month
for May 2012 as the month and year. You must use a loop. The format
of the month should be as shown below: Hint: You can't use console
log and print on the same line. Try storing the entire row as one
concatenated string and then displaying it. You must use loops for
this one. Do not just print the calendar as a series of console.log
statements!*/
calDaysOfWeek = [];
calDaysOfWeek.push("Sun", "Mon", "Tues", "Wed", "Thur", "Fri", "Sat");
var s = "MAY 2012\nS M T W T F S\n";
var numDaysOfWeek = calDaysOfWeek.length;
var firstDay = 2;
var numDaysOfMonth = 31;
var numWeeks = numDaysOfMonth/7;
for(var i = 0; i < numWeeks; i++) {
for(var j = 0; j < numDaysOfWeek; j++) {
s += i*numDaysOfWeek + j + ' ';
}
s += "\n";
}
if (firstDay != calDaysOfWeek[2]) {
calDaysOfWeek.push();
}
else if (calDaysOfWeek[30] != 31) {
calDaysOfWeek.pop();
}
else
console.log(s);
感謝您的迅速反應。雖然,我仍然感到困惑。我相信「5」將是「numWeeks」的計算,但我沒有得到什麼「s」變量。我也不相信我們在課堂上使用的是HTML代碼。我只使用console.log來顯示輸出。 – MagnetM
對於你的情況numWeeks確實是5,如果你想從firstDay和numDaysOfMonth更普遍的計算,那麼你可以找到一個4(28天與星期日開始的月份)到6(31天與一個月開始一個星期六) ...如果你不想計算它,你可以將它硬編碼爲5。 var s是將接收結果的字符串,您應該只能使用1個console.log()來顯示s。 –
@MagnetM,在內部循環中嘗試這樣的:'s = s + i * numDaysOfWeek + j +'';'這不是最終的答案,但它應該讓你更接近。 –