当前位置:首页 > JavaScript

js数组实现课表

2026-03-16 04:07:51JavaScript

使用 JavaScript 数组实现课表

数据结构设计

可以使用多维数组存储课表信息,例如按星期和课程节数划分。以下是一个示例数据结构:

const timetable = [
  // 星期一
  [
    { name: "数学", teacher: "张老师", location: "A101" },
    { name: "英语", teacher: "李老师", location: "B202" },
    null, // 空节
    { name: "物理", teacher: "王老师", location: "C303" }
  ],
  // 星期二
  [
    null,
    { name: "化学", teacher: "赵老师", location: "D404" },
    { name: "生物", teacher: "刘老师", location: "E505" },
    null
  ],
  // ... 其他星期
];

动态添加课程

可以通过数组方法动态添加或修改课程:

js数组实现课表

// 添加星期三的课程
timetable[2] = [
  { name: "历史", teacher: "陈老师", location: "F606" },
  null,
  { name: "地理", teacher: "杨老师", location: "G707" }
];

// 修改特定课程
timetable[0][1].location = "B205";

查询课程信息

使用数组索引查询特定时间的课程:

js数组实现课表

// 查询星期一第二节课
const mondaySecondClass = timetable[0][1];

// 查询星期三所有课程
const wednesdayClasses = timetable[2];

可视化输出

将课表数据转换为可读格式:

function printTimetable() {
  const weekdays = ["星期一", "星期二", "星期三", "星期四", "星期五"];

  weekdays.forEach((day, dayIndex) => {
    console.log(`\n${day}:`);
    timetable[dayIndex]?.forEach((cls, classIndex) => {
      if (cls) {
        console.log(`第${classIndex + 1}节: ${cls.name} - ${cls.teacher} (${cls.location})`);
      } else {
        console.log(`第${classIndex + 1}节: 空闲`);
      }
    });
  });
}

高级功能实现

可以扩展更多实用功能:

// 查找特定老师的课程
function findClassesByTeacher(teacherName) {
  return timetable.flatMap((day, dayIndex) => 
    day.map((cls, classIndex) => 
      cls?.teacher === teacherName ? { dayIndex, classIndex, ...cls } : null
    ).filter(Boolean)
  );
}

// 检查时间冲突
function hasConflict(newClass) {
  return timetable[newClass.day]?.[newClass.period] !== null;
}

注意事项

  • 数组索引从0开始,但实际显示时可以+1更符合日常习惯
  • 使用null或undefined表示空闲时段
  • 多维数组结构可以根据实际需求调整,如增加周数维度
  • 考虑使用TypeScript增强类型安全

标签: 课表数组
分享给朋友:

相关文章

vue怎样实现数组绑定

vue怎样实现数组绑定

Vue 实现数组绑定的方法 Vue 提供了多种方式来实现数组的绑定,以下是常见的几种方法: 使用 v-for 指令绑定数组 通过 v-for 指令可以遍历数组并渲染列表。语法如下: <ul&…

vue实现添加数组

vue实现添加数组

Vue 实现添加数组的方法 在 Vue 中,可以通过多种方式实现向数组添加元素。以下是几种常见的方法: 使用 push 方法 通过 Vue 的响应式系统,直接调用数组的 push 方法添加元素:…

react如何修改数组

react如何修改数组

修改数组的方法 在React中修改数组时,需要遵循不可变性原则,即不直接修改原数组,而是创建新数组。以下是几种常见方法: 添加元素 使用扩展运算符或concat方法创建包含新元素的新数组: con…

react如何获取数组的索引值

react如何获取数组的索引值

获取数组索引值的常见方法 在React中,处理数组并获取其索引值可以通过多种方式实现,具体取决于使用场景(如渲染列表、事件处理等)。以下是几种典型方法: 使用map方法时的索引参数 在渲染数组时,m…

react如何合并两个数组

react如何合并两个数组

合并两个数组的方法 在React中合并两个数组可以使用多种方法,以下是一些常见的方式: 使用扩展运算符(Spread Operator) const array1 = [1, 2, 3]; con…

php实现数组分页

php实现数组分页

PHP 数组分页实现方法 在 PHP 中实现数组分页可以通过多种方式完成,以下是几种常见的方法: 方法一:使用 array_slice 函数 array_slice 函数可以从数组中截取指定范围的…