现有上课方式、日期、节次、教室四个字段 用js怎么实现把上课方式、日期、教室都相同的节次放到一起
时间: 2023-10-07 17:13:42 浏览: 44
可以使用数组的 `filter()` 方法和 `reduce()` 方法来实现。
假设已经有一个包含课程信息的数组 `schedule`,每个元素都包含上课方式、日期、节次、教室四个字段,可以按如下方式实现:
```javascript
// 根据上课方式、日期、教室三个字段进行分组
const groups = schedule.reduce((acc, cur) => {
const key = cur.上课方式 + cur.日期 + cur.教室;
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(cur);
return acc;
}, {});
// 取出每个分组中节次相同的课程
for (const key in groups) {
const group = groups[key];
const times = new Set(group.map(item => item.节次));
for (const time of times) {
const courses = group.filter(item => item.节次 === time);
console.log(`上课方式:${courses[0].上课方式},日期:${courses[0].日期},教室:${courses[0].教室},节次:${time},课程:${courses.map(item => item.课程).join('、')}`);
}
}
```
以上代码将会输出按照上课方式、日期、教室分组后,每个分组中节次相同的课程信息。
阅读全文