2 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個贊
問題是您每次都調(diào)用 validDate() 進(jìn)行比較,并且在 validDate 函數(shù)內(nèi)部您正在改變 years 變量。
修復(fù)它的方法有多種,但在我看來,第一種也是最基本的方法,我強(qiáng)烈建議,是將 validDate() 的值存儲在一個常量中,并與它進(jìn)行進(jìn)一步比較。您應(yīng)該始終盡量避免每次都調(diào)用該函數(shù)。最好將其結(jié)果保存在內(nèi)存中
你在哪里
if (validDate() != false) { newAppointment.date = validDate(); }
在 addApointment 函數(shù)中,只需執(zhí)行
const isDateValid = validDate()
然后用 isDataValid 替換所有即將發(fā)生的 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')
}
當(dāng)然,我強(qiáng)烈建議您對 validTime 也這樣做。

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