diff --git a/js/components/coursesList.vue b/js/components/coursesList.vue index cc6c517..d4063a7 100644 --- a/js/components/coursesList.vue +++ b/js/components/coursesList.vue @@ -8,35 +8,25 @@ var coursesList = { }, methods: { 'getTime': function (timeString) { - if (timeString == null) { - return "" - } - - ans = [] - number = "" - for (var i of timeString) { - if (i >= "0" && i <= "9") { - number = i - } else if (i >= "a" && i <= "z") { - ans.push(number + i) - } - else { - ans.push(timeString) - break - } - } - return ans + let num; + const timeRegex = new RegExp(/^\d[\da-z]*[a-z]$/); + return timeRegex.test(timeString) + ? [...timeString].reduce((res, c) => { + if (Number.isInteger(+c)) { + num = c; + return res; + } else { + return [...res, num + c]; + } + }, []) + : []; }, 'isOK': function (course) { var time = this.getTime(course.time) // console.log(course.name, " ", time) - for (t of time) { - for (st of this.selectedTime) { - if (t == st) - return false - } - } - return true + const isConflict = time.some((t) => this.selectedTime.includes(t)) + + return time.length && !isConflict }, 'log': function (name, data) { console.log(name, data) diff --git a/js/components/main.vue b/js/components/main.vue index 303af7e..2f52135 100644 --- a/js/components/main.vue +++ b/js/components/main.vue @@ -134,20 +134,18 @@ var mainWindow = { } }, 'getTime': function (timeString) { - ans = [] - number = "" - for (var i of timeString) { - if (i >= "0" && i <= "9") { - number = i - } else if (i >= "a" && i <= "z") { - ans.push(number + i) - } - else { - ans.push(timeString) - break - } - } - return ans + let num; + const timeRegex = new RegExp(/^\d[\da-z]*[a-z]$/); + return timeRegex.test(timeString) + ? [...timeString].reduce((res, c) => { + if (Number.isInteger(+c)) { + num = c; + return res; + } else { + return [...res, num + c]; + } + }, []) + : []; }, 'select': function (department) { this.selectDepartment = department @@ -364,4 +362,4 @@ var mainWindow = { ` -} \ No newline at end of file +}