我正在制作这个速记日历,显示今天
和接下来的 5 天。
我已经从今天
开始循环了。有一个 7 天的 JS 对象和一个 for 循环
,用于检查这 7 天中的哪一天是今天
;执行此检查后,循环将日期名称替换为单词“今天”。我需要完成这件事的是一种包装结果的方法,因此在到达最后一天后,函数会包装循环并显示从数组开头开始丢失的天数(如果需要)。例如,如果今天是星期三,则会显示今天、星期四、星期五、星期六、星期日
,然后换行并显示星期一
。
但目前我只能让我的浏览器崩溃。
代码:
var days = {
weekDays: [{
day: "monday",
dayId: "1",
}, {
day: "tuesday",
dayId: "2",
}, {
day: "wednesday",
dayId: "3",
}, {
day: "thursday",
dayId: "4",
}, {
day: "friday",
dayId: "5",
}, {
day: "saturday",
dayId: "6",
}, {
day: "sunday",
dayId: "7",
}, ]
}
var weekDays = days.weekDays;
var date = new Date;
var todaysDate = date.getDay();
var oneOfTheseDays = [];
for (i = 0; i < 8; i++) {
if (weekDays[i].dayId == todaysDate) {
weekDays[i].day = 'today';
}
var today = weekDays[i + todaysDate - 1];
oneOfTheseDays.push(today);
}
console.log((oneOfTheseDays[0].day) + " " + (oneOfTheseDays[0].dayId));
我将非常感谢任何支持,因为我在这里有点生气:(
最佳答案
您可以使用取模
运算符来结束索引。
例如:
for (i = 0; i < 8; i++) {
if (weekDays[i % 7].dayId == todaysDate) { // Won't exceed 6
weekDays[i % 7].day = 'today'; // Won't exceed 6
}
var today = weekDays[(i + todaysDate - 1) % 7]; // Won't exceed 6
oneOfTheseDays.push(today);
}
关于javascript - 如何在JS中包装有限循环并将其推送到有限表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35570635/