fix: handle edge case when original class is undefined
This commit is contained in:
parent
b275800e17
commit
3366610c5d
2 changed files with 13 additions and 14 deletions
|
|
@ -56,30 +56,29 @@ export default class Comcigan {
|
||||||
const teachersLen = Math.floor(Math.log10(teachers.length - 1)) + 1
|
const teachersLen = Math.floor(Math.log10(teachers.length - 1)) + 1
|
||||||
const subjects = data[`자료${subjectCode}`] as string[]
|
const subjects = data[`자료${subjectCode}`] as string[]
|
||||||
|
|
||||||
const original = data[`자료${originalCode}`] as number[][][][]
|
const original = data[`자료${originalCode}`] as (number | undefined)[][][][]
|
||||||
const day = data[`자료${dayCode}`] as number[][][][]
|
const day = data[`자료${dayCode}`] as number[][][][]
|
||||||
|
|
||||||
|
const getSubject = (code: number) =>
|
||||||
|
subjects[Number(code.toString().slice(0, -teachersLen - 1))]
|
||||||
|
const getTeacher = (code: number) =>
|
||||||
|
teachers[Number(code.toString().slice(-teachersLen))]
|
||||||
|
|
||||||
return day.slice(1).map((grade, gIdx) =>
|
return day.slice(1).map((grade, gIdx) =>
|
||||||
grade.slice(1).map((cls, cIdx) =>
|
grade.slice(1).map((cls, cIdx) =>
|
||||||
cls.slice(1).map((day, dIdx) =>
|
cls.slice(1).map((day, dIdx) =>
|
||||||
day.slice(1).map((period, pIdx) => {
|
day.slice(1).map((period, pIdx) => {
|
||||||
const p = period.toString()
|
const origin = original[gIdx + 1][cIdx + 1][dIdx + 1][pIdx + 1]
|
||||||
const origin =
|
const changed = period !== origin
|
||||||
original[gIdx + 1][cIdx + 1][dIdx + 1][pIdx + 1].toString()
|
|
||||||
const changed = p !== origin
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
subject: subjects[Number(p.slice(0, p.length - teachersLen - 1))],
|
subject: getSubject(period),
|
||||||
teacher: teachers[Number(p.slice(-teachersLen))],
|
teacher: getTeacher(period),
|
||||||
changed,
|
changed,
|
||||||
...(changed
|
...(changed
|
||||||
? {
|
? {
|
||||||
originalSubject:
|
originalSubject: origin ? getSubject(origin) : '없음',
|
||||||
subjects[
|
originalTeacher: origin ? getTeacher(origin) : '없음',
|
||||||
Number(origin.slice(0, origin.length - teachersLen - 1))
|
|
||||||
],
|
|
||||||
originalTeacher:
|
|
||||||
teachers[Number(origin.slice(-teachersLen))],
|
|
||||||
}
|
}
|
||||||
: {}),
|
: {}),
|
||||||
} as Timetable
|
} as Timetable
|
||||||
|
|
|
||||||
|
|
@ -2,5 +2,5 @@ export { default } from './client'
|
||||||
|
|
||||||
export { default as Region } from './models/Region'
|
export { default as Region } from './models/Region'
|
||||||
export { default as School } from './models/School'
|
export { default as School } from './models/School'
|
||||||
export { default as Timetable } from './models/Timetable'
|
export { Timetable } from './models/Timetable'
|
||||||
export { Weekday } from './constants'
|
export { Weekday } from './constants'
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue