每次调用函数时,我都想打印 Next Day 的名称
Posted
技术标签:
【中文标题】每次调用函数时,我都想打印 Next Day 的名称【英文标题】:I want to print the name of Next Day every time I call my function 【发布时间】:2017-12-05 07:25:36 【问题描述】:我需要创建一个名为 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();
我期望输出为:
星期六 周日 周一 周二 周三 周四 星期五 星期六
但我得到如下输出: 星期日 周一 周二 周三 周四 星期五 星期日 星期一
我相信我在这里遗漏了一些非常小的东西,因此我在这里跳过了一天。 请推荐
【问题讨论】:
【参考方案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;
;
【讨论】:
谢谢你的帮助,我试过你的,这也是跳过一天。 周六周一周二周三周四周五周日周一周二周三 和我想念的一样,【参考方案2】:生成器功能可能很方便。
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();
【讨论】:
不会产生天数[i++] 更有用吗? @Jonasw 谢谢 (:以上是关于每次调用函数时,我都想打印 Next Day 的名称的主要内容,如果未能解决你的问题,请参考以下文章
在“Zapier 代码”操作中触发多个 webhook 调用