首页 文章

每次调用我的函数时,我想打印下一天的名字

提问于
浏览
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();

我期待输出为:

星期六星期天
周一周二周三周四周五周六

但我得到的输出如下:周日周一周二周三周四周五周日周一

我相信我错过了一些非常小的东西,因为我在这里跳过了一天 . 请建议

2 回答

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

相关问题