refactor: use mathmatical method instead of number <=> string conversion

This commit is contained in:
Starcea 2024-07-16 23:24:00 +09:00
commit 3fef0590dd
No known key found for this signature in database
GPG key ID: B7A77E32374911E1
3 changed files with 11 additions and 4 deletions

3
.gitignore vendored
View file

@ -1,2 +1,5 @@
node_modules
dist
# PIIs included
tests

View file

@ -94,6 +94,10 @@ User-Agent에 따라 요청을 거부하는 경우가 있으므로, User-Agent
$$\lfloor \log_{10}(\text{{amount of teachers}}) \rfloor + 1$$
2. 교시 코드에서 마지막 `teachersLen + 1`자리를 제외하면 교사 코드를 얻을 수 있고, 응답의 `자료{teacherCode}`에서 index `교사 코드`의 값이 교사 이름입니다.
2. 교사 코드는 다음과 같고, 응답의 `자료{teacherCode}`에서 index `교사 코드`의 값이 교사 이름입니다.
3. 교시 코드의 마지막 `teachersLen`자리는 과목 코드이고, 응답의 `자료{subjectCode}`에서 index `과목 코드`의 값이 과목 이름입니다.
$$ \text{{교시 코드}} \mod 10^{\text{{teachersLen}}} $$
3. 과목 코드는 다음과 같고, 응답의 `자료{subjectCode}`에서 index `과목 코드`의 값이 과목 이름입니다.
$$ \left\lfloor \frac{\text{{교시 코드}}}{10^{\text{{teachersLen}} + 1}} \right\rfloor $$

View file

@ -62,10 +62,10 @@ export default class Comcigan {
const getSubject = (code?: number) =>
code
? subjects[Number(code.toString().slice(0, -teachersLen - 1))]
? subjects[code / 10 ** (teachersLen + 1) | 0]
: '없음'
const getTeacher = (code?: number) =>
code ? teachers[Number(code.toString().slice(-teachersLen))] : '없음'
code ? teachers[code % 10 ** teachersLen] : '없음'
return mergeMap(now.slice(1), original.slice(1), (gNow, gOrigin) =>
mergeMap(gNow.slice(1), gOrigin.slice(1), (cNow, cOrigin) =>