Typescript数组Object数组Array

时间:2019-08-04 02:40:13

标签: arrays typescript

我的课程不需要动态更改,因此我想在我的角度项目中对其进行硬编码。

数据如下:

第一学期 第二学期 第三学期

每学期有5年级 每个年级有10门科目 每个学期都有12-16周,具体取决于学期。

我想按以下方式访问数据

currentLesson = term.grade.subject.week.data;

为此,我认为我需要创建一个术语数组,每个术语包含一个成绩数组,然后每个成绩包含一个主题数组,然后每个主题数组包含一个Week / coursesData对象。

我可以制作最后一个简单的对象数组,但我的想法停下来,试图做对象数组。

还是有更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

如果所有“数据”都是一个简单的字符串,则可以简单地创建一个多维数组,如下所示:

const lessons: string[][][][] = buildLessons();
const currentLesson = lessons[t][g][s][w];

当然,如果需要,您可以将string替换为更复杂的数据类型,例如:

interface Lesson {
  data: string;
  otherProperty: number;
}
const lessons: Lesson[][][][] = buildLessons();
const currentLesson = lessons[t][g][s][w];
// do something with currentLesson.data, etc

或者,如果要使用对象结构,也可以通过拆分为单独的接口,以更易读的方式将其写出来,如下所示:

interface Curriculum {
  term: number;
  grades: Grade[];
} 

interface Grade {
  id: number;
  subjects: Subject[];
}

interface Subject {
  id: number;
  weeks: Week[];
}

interface Week {
  id: number;
  data: string;
}

let example: Curriculum;
const currentLesson = example.grades[g].subjects[s].weeks[w].data;