优化一下这段代码 var table=that.data.timetable; table.push(table.shift()) for(var i=0;i<table.length;i++){ var classlist=table[i].class_time var classt=[]; for(var j=0;j<classlist.length;j++){ if(j>0){ if(classlist[j-1].end_time&&classlist[j].star_time){ var end=classlist[j-1].end_time; var start=classlist[j].star_time; var mints= that.judgeTimeDiffer(start,end); if(mints>10){ classt.push({ mine:mints, backgroundcolor: "#FFF" }) classt.push({ end_time:classlist[j].end_time, star_time:classlist[j].star_time, backgroundcolor:classlist[j].backgroundcolor, code:classlist[j].code, status:classlist[j].status }) }else{ classt.push({ end_time:classlist[j].end_time, star_time:classlist[j].star_time, backgroundcolor:classlist[j].backgroundcolor, code:classlist[j].code, status:classlist[j].status }) } }else{ if(classlist[j].star_time){ classt.push({ end_time:classlist[j].end_time, star_time:classlist[j].star_time, backgroundcolor:classlist[j].backgroundcolor, code:classlist[j].code, status:classlist[j].status }) }else{ classt.push({ backgroundcolor: "#FFF" }) } } }else{ if(classlist[j].star_time){ classt.push({ end_time:classlist[j].end_time, star_time:classlist[j].star_time, backgroundcolor:classlist[j].backgroundcolor, code:classlist[j].code, status:classlist[j].status }) }else{ classt.push({ backgroundcolor: "#FFF" }) } } } table[i].class_time=classt that.setData({ timetable:table, classsTable: res.resultMessage })
时间: 2023-06-03 17:01:56 浏览: 84
timeline-vuejs-Vue的简约时间表-Vue.js开发
优化后的代码如下:
var table = [...that.data.timetable];
table.push(table.shift());
table.forEach(item => {
const classlist = item.class_time;
const classt = [];
classlist.forEach((cls, index) => {
if (index > 0 && cls.start_time !== classt[classt.length - 1].end_time) {
classt.push({
start_time: classt[classt.length - 1].end_time,
end_time: cls.start_time,
name: "空课"
});
}
classt.push(cls);
});
item.class_time = classt;
});
这段代码的优化思路:
1.使用数组的解构赋值来复制一份原始的数据,避免直接操作原数据。
2.使用 forEach 循环来遍历时间表中的每个课程,避免使用 for 循环时需要手动维护数组下标。
3.将课程表中每个课程的时间段进行优化:如果前一个课程的结束时间不等于后一个课程的开始时间,就添加一个“空课程”的时间段。这样可以避免多余的时间间隔。
4.将优化后的时间段数组赋值给每个课程的 class_time 属性,完成整个代码的优化。
阅读全文