【发布时间】:2017-02-09 04:14:00
【问题描述】:
我不是 100% 确定如何表达这个问题,因此请随意将问题标题更改为有意义的内容。
我有一个对象 solution,其中包含一个属性名称 days,它包含 10 个数组,请参见下面的示例
{
"sameShiftHolds": true,
"sameStaffHolds": true,
"sameRoomHolds": true,
"days": [{
"availableStaff": [
[0, 1, 4, 3, 5, 9, 22, 44],
[0, 1, 4, 3, 5, 9, 22, 44],
[4, 8, 7]
],
"availableRooms": [
[3, 6, 77, 89, 23],
[3, 6, 77, 89, 23],
[2, 7, 9]
],
"suitableStaff": [
[22, 44],
[22, 44],
[4]
],
"suitableRooms": [
[89, 23],
[22, 44],
[2]
],
"ValidStartDate": true
}, {
"availableStaff": [
[0, 1, 4, 3, 5, 9, 22, 44],
[0, 1, 4, 3, 5, 9, 22, 44],
[4, 8, 7]
],
"availableRooms": [
[3, 6, 77, 89, 23],
[3, 6, 77, 89, 23],
[2, 7, 9]
],
"suitableStaff": [
[22, 44],
[22, 44],
[4]
],
"suitableRooms": [
[89, 23],
[22, 44],
[2]
],
"ValidStartDate": false
}, {
"availableStaff": [
[0, 1, 4, 3, 5, 9, 22, 44],
[0, 1, 4, 3, 5, 9, 22, 44],
[4, 8, 7]
],
"availableRooms": [
[3, 6, 77, 89, 23],
[3, 6, 77, 89, 23],
[2, 7, 9]
],
"suitableStaff": [
[22, 44],
[22, 44],
[4]
],
"suitableRooms": [
[89, 23],
[22, 44],
[2]
],
"ValidStartDate": true
}, {
"availableStaff": [
[0, 1, 4, 3, 5, 9, 22, 44],
[0, 1, 4, 3, 5, 9, 22, 44],
[4, 8, 7]
],
"availableRooms": [
[3, 6, 77, 89, 23],
[3, 6, 77, 89, 23],
[2, 7, 9]
],
"suitableStaff": [
[22, 44],
[22, 44],
[4]
],
"suitableRooms": [
[89, 23],
[22, 44],
[2]
],
"ValidStartDate": true
}, {
"availableStaff": [
[0, 1, 4, 3, 5, 9, 22, 44],
[0, 1, 4, 3, 5, 9, 22, 44],
[4, 8, 7]
],
"availableRooms": [
[3, 6, 77, 89, 23],
[3, 6, 77, 89, 23],
[2, 7, 9]
],
"suitableStaff": [
[22, 44],
[22, 44],
[4]
],
"suitableRooms": [
[89, 23],
[22, 44],
[2]
],
"ValidStartDate": true
}, {
"availableStaff": [
[0, 1, 4, 3, 5, 9, 22, 44],
[0, 1, 4, 3, 5, 9, 22, 44],
[4, 8, 7]
],
"availableRooms": [
[3, 6, 77, 89, 23],
[3, 6, 77, 89, 23],
[2, 7, 9]
],
"suitableStaff": [
[22, 44],
[22, 44],
[4]
],
"suitableRooms": [
[89, 23],
[22, 44],
[2]
],
"ValidStartDate": true
}, {
"availableStaff": [
[0, 1, 4, 3, 5, 9, 22, 44],
[0, 1, 4, 3, 5, 9, 22, 44],
[4, 8, 7]
],
"availableRooms": [
[3, 6, 77, 89, 23],
[3, 6, 77, 89, 23],
[2, 7, 9]
],
"suitableStaff": [
[22, 44],
[22, 44],
[4]
],
"suitableRooms": [
[89, 23],
[22, 44],
[2]
],
"ValidStartDate": true
}, {
"availableStaff": [
[0, 1, 4, 3, 5, 9, 22, 44],
[0, 1, 4, 3, 5, 9, 22, 44],
[4, 8, 7]
],
"availableRooms": [
[3, 6, 77, 89, 23],
[3, 6, 77, 89, 23],
[2, 7, 9]
],
"suitableStaff": [
[22, 44],
[22, 44],
[4]
],
"suitableRooms": [
[89, 23],
[22, 44],
[2]
],
"ValidStartDate": true
}, {
"availableStaff": [
[0, 1, 4, 3, 5, 9, 22, 44],
[0, 1, 4, 3, 5, 9, 22, 44],
[4, 8, 7]
],
"availableRooms": [
[3, 6, 77, 89, 23],
[3, 6, 77, 89, 23],
[2, 7, 9]
],
"suitableStaff": [
[22, 44],
[22, 44],
[4]
],
"suitableRooms": [
[89, 23],
[22, 44],
[2]
],
"ValidStartDate": false
}, {
"availableStaff": [
[0, 1, 4, 3, 5, 9, 22, 44],
[0, 1, 4, 3, 5, 9, 22, 44],
[4, 8, 7]
],
"availableRooms": [
[3, 6, 77, 89, 23],
[3, 6, 77, 89, 23],
[2, 7, 9]
],
"suitableStaff": [
[22, 44],
[22, 44],
[4]
],
"suitableRooms": [
[89, 23],
[22, 44],
[2]
],
"ValidStartDate": true
}]
}
在我的网站上,我有一个自定义的一周日历视图,它是从周一到周五的模板创建的。默认情况下,有 2 周,但用户可以更改他们想要查看的周数。每个星期都由一个具有唯一 ID "solCol0"、"solCol1" 等的 div 分隔......
然后我循环选择的周数,在这种情况下我们有2。
然后循环遍历solution 的长度,在这种情况下为10。
我只想循环 5 次(一周中的每一天),然后在 5 次循环后,将 columdId 增加 1 以将详细信息附加到下一周,例如前 5 个循环附加到 "solCol0" 然后下一个5 附加到“solCol1”,如果用户选择了 2 周以上,则为 3,solution 长度将增加到 15,因此接下来的 5 个循环将附加到“'solCol2”` 等等...
抱歉,如果这不是很清楚,通常我只需要在每 5 次循环后增加一个值。任何帮助将不胜感激。
loadSolutionStartRows: function(dates, solution) {
var self = this;
for (var i = 0; i < dates.length; i++) {
var columnId = "#solCol" + i;
var startDate = moment(dates[i], 'Do MMM');
var rowDates = [];
var iterate = 5;
for (var d = 0; d < solution.days.length; d++) {
//Every 5 loops - columnId = "#solCol" + i + 1;
rowDates.push(moment(startDate).format('ddd (Do MMM)'));
startDate.add(1, 'days');
var selectedDate = rowDates[d];
var statusClass;
var statusIconClass;
if (solution.days[d].ValidStartDate === true) {
statusClass = "sxpTableHeaderIconGreenStatus";
statusIconClass = "octicon " + "octicon-check";
}
if (solution.days[d].ValidStartDate === false) {
statusClass = "sxpTableHeaderIconRedStatus";
statusIconClass = "octicon " + "octicon-x";
}
$(columnId).append(self.solutionTableRow({
rowId: i + 1,
date: selectedDate,
statusClass: statusClass,
statusIconClass: statusIconClass,
trainerCountEarly: 1,
trainerListEarly: 1,
roomCountEarly: 1,
roomListEarly: 1,
trainerCountLate: 1,
trainerListLate: 1,
roomCountLate: 1,
roomListLate: 1
}));
}
}
}
},
通过上面的代码,我实现了下图,它增加了 10 天而不是我想要的 5 天。
【问题讨论】:
-
for (var i = 0; i
-
@twothreebrent 这将在每轮中将变量增加 5,这不是 OP 所要求的。
-
@twothreebrent 这也导致了我的无限循环
-
if (i % 5 === 0) { foo++; } -
那是我的错,我读到了他想做的错事。
标签: javascript jquery loops for-loop