我试图安排下面obj中所有课程的时间表:
loader-icon
每个 COURSE 有多个不同的班级 TYPE ,每个班级 TYPE 有多个 OPTION (与不同的建筑物,日,开始时间,结束时间)。但每个 COURSE 的每个 TYPE 只有1个选项可以安排到时间表中。
例如:课程代码 COSC1121 只有1个TYPE 讲座,本讲座有 2个选项 =>只安排那2个中的1个
我尝试过:
{"COSC1121":{
"name":"Course 1 name",
"color":"#1ABC9C",
"type":{
"lecture":{
"0":{
"building":"31",
"day":0,
"starttime":1,
"endtime":3
}
"1":{
"building":"95",
"day":3,
"starttime":6,
"endtime":8
}
}
},
"priority":0,
"arranged":true
},
"POPP1112":{
"name":"Course 2 name",
"color":"#1ABC9C",
"type":{
"lecture":{
"0":{
"building":"71",
"day":2,
"starttime":2,
"endtime":4
}
},
"tutorial":{
"0":{
"building":"13",
"day":3,
"starttime":1,
"endtime":3
}
"1":{
"building":"80",
"day":3,
"starttime":2,
"endtime":5
}
"2":{
"building":"56",
"day":3,
"starttime":7,
"endtime":9
}
}
},
"priority":1,
"arranged":true
}
}
该代码块只是遍历that_obj并安排每个类类型的第一个选项。它运作得很好。
现在我想让它循环通过所有可能的安排(所有可能性),如:
1 /选择COSC1121 - >讲座0和其余的第一选择
2 /选择COSC1121 - >讲座1 ...
3 / ...
n /选择COSC1121 - >讲座0和POPP1112 - >教程1(第二个选项)......
SO ON ......
目前陷入困境。任何建议和建议将不胜感激!
由于
P / S:输出格式应与原始对象格式相同,只需删除未选择的选项。例如:
$.each(that_obj, function(i){
var this_c_code = that_obj[i].code,
this_c_name = that_obj[this_c_code].name,
this_c_color = that_obj[this_c_code].color;
that_obj[this_c_code].arranged = true;
$.each( that_obj[this_c_code].type, function(ii) {
// ii now is the string of course_type (lecture...)
$.each( that_obj[this_c_code].type[ii], function(iii) {
// Create short name
var this_temp_class_opt = that_obj[this_c_code].type[ii][iii];
var update_result = c_set_timetable_occupy( this_temp_class_opt, this_c_name, this_c_code, ii, this_c_color );
// Check the update_result and add this class option into another object
...
});
});
});