当前位置:首页 > 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
  ],
  // ... 其他星期
];

动态添加课程

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

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

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

查询课程信息

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

// 查询星期一第二节课
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}节: 空闲`);
      }
    });
  });
}

高级功能实现

可以扩展更多实用功能:

js数组实现课表

// 查找特定老师的课程
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增强类型安全

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

相关文章

java如何定义数组

java如何定义数组

定义数组的基本语法 在Java中,数组可以通过以下两种方式定义: 方式一:声明数组并指定长度 数据类型[] 数组名 = new 数据类型[数组长度]; 例如: int[] numbers = n…

java如何初始化数组

java如何初始化数组

初始化数组的方法 在Java中,数组可以通过多种方式进行初始化。以下是几种常见的方法: 静态初始化(直接赋值) 在声明数组时直接指定元素值,适用于已知数组内容的情况: int[] numbers…

vue 实现数组排序

vue 实现数组排序

在 Vue 中实现数组排序的方法 使用 JavaScript 原生排序方法 Vue 中可以直接调用 JavaScript 的 Array.prototype.sort() 方法对数组进行排序。对于数字…

vue实现嵌套数组

vue实现嵌套数组

Vue 中实现嵌套数组的常见方法 在 Vue 中处理嵌套数组时,通常会结合 v-for 指令和响应式数据管理。以下是几种典型场景的实现方式: 基本嵌套渲染 使用多层 v-for 渲染嵌套数组结构:…

vue怎么实现数组遍历

vue怎么实现数组遍历

数组遍历的基本方法 在Vue中遍历数组可以使用v-for指令,这是Vue提供的用于渲染列表数据的核心指令。基本语法如下: <ul> <li v-for="item in ite…

vue实现数组双向绑定

vue实现数组双向绑定

实现数组双向绑定的方法 在Vue中,实现数组的双向绑定通常需要结合v-model指令或自定义事件处理。以下是几种常见的方法: 使用v-model绑定数组 Vue的v-model指令默认支持表单元素的…