2017-07-01 21 views
0

我需要創建一個名爲NextDay()的JavaScript函數。 此功能應該在控制檯中打印第二天的名稱。我想打印下一天的名稱,每次我打電話給我的功能

我創建瞭如下功能:

//Function to Print the name of Next Day in Javascript 
    var NextDay = (function() { 
    counter = 0; 
    var nextDay = function() { 

     var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", 
        "Friday", "Saturday"]; 
     var date = new Date(); 
     var dayNumber = date.getDay() + counter; 
     if (dayNumber < 6) { 
      dayNumber = dayNumber; 
     } 
     else { 
      dayNumber = (dayNumber % 6); 
     } 
     var dayName = days[dayNumber]; 
     counter += 1; 
     return dayName; 
    }; 

    return nextDay; 
})(); 
NextDay(); 
NextDay(); 
NextDay(); 
NextDay(); 
NextDay(); 
NextDay(); 
NextDay(); 
NextDay(); 

我期待的輸出爲:

週六 週日
週一 週二 週三 週四 週五 週六

但我得到的輸出爲b elow: 週日 週一週二 週三 週四 週五 週日 週一

我相信我失去了一些東西非常小的,因爲在這裏,其中我得到了一天跳過這裏。 請建議

回答

1

我不是舒爾,你的數學是哪裏錯了,但那裏有一個簡單的方法:

var counter =(new Date).getDay(); 
var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; 
var nextDay = function() { 
    var day=days[counter]; 
    counter = (counter+1)%7; 
    return day; 
}; 
+0

謝謝你的幫忙,我想你的一個,這也跳過了一天。 –

+0

週六 週一週二 週三 週四 週五 週日 週一 週二 週三 –

+0

@mayank古普塔哦,媽的一週有7天:/更改%6 =>%7 –

1

發生器功能可以得心應手。

function* nextDay() { 
 
    let i = 0, 
 
     days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; 
 
    while (i < 7) { 
 
    yield console.log(days[i++]); 
 
    if (i == 7) i = 0; 
 
    } 
 
} 
 

 
let gen = nextDay(); 
 
gen.next(); 
 
gen.next(); 
 
gen.next(); 
 
gen.next(); 
 
gen.next(); 
 
gen.next(); 
 
gen.next(); 
 
gen.next(); 
 
gen.next();

+0

不會產生天[i ++]更有用嗎? –

+0

@Jonasw謝謝(: –

相關問題