2 回答

TA貢獻1827條經驗 獲得超8個贊
問題是您每次都調用 validDate() 進行比較,并且在 validDate 函數內部您正在改變 years 變量。
修復它的方法有多種,但在我看來,第一種也是最基本的方法,我強烈建議,是將 validDate() 的值存儲在一個常量中,并與它進行進一步比較。您應該始終盡量避免每次都調用該函數。最好將其結果保存在內存中
你在哪里
if (validDate() != false) { newAppointment.date = validDate(); }
在 addApointment 函數中,只需執行
const isDateValid = validDate()
然后用 isDataValid 替換所有即將發生的 validDate() (5)
const isDateValid = validDate()
if (isDateValid != false) { newAppointment.date = isDateValid; }
and
if (isDateValid === null | isDateValid === undefined | validTime() === null | validTime() === undefined | validTime() === false | isDateValid === false | isConcurrentAppointment(newAppointment.date, newAppointment.startTime, newAppointment.endTime) != true) {
alert('Date or time entry invalid')
}
當然,我強烈建議您對 validTime 也這樣做。

TA貢獻1775條經驗 獲得超8個贊
您的問題似乎來自函數years
內的追加validDate
,該函數在代碼的其他地方被視為非變異函數。由于每次需要 tha 值時validDate
都會在函數內重復調用,因此該行也將被重復調用。您可以將該行移到別處,但更好的解決方案是進行更改,以便它調用一次并存儲它們的值,然后對存儲的值執行其余操作。但是,您可能還想移動以便僅在約會完全有效時才調用它。addAppointment
years.push(yy)
years.push(yy)
addAppointment
validDate
validTime
years.push(yy)
添加回答
舉報