2 回答
![?](http://img1.sycdn.imooc.com/533e4d510001c2ad02000200-100-100.jpg)
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 也这样做。
![?](http://img1.sycdn.imooc.com/545847f50001126402200220-100-100.jpg)
TA贡献1775条经验 获得超8个赞
您的问题似乎来自函数years
内的追加validDate
,该函数在代码的其他地方被视为非变异函数。由于每次需要 tha 值时validDate
都会在函数内重复调用,因此该行也将被重复调用。您可以将该行移到别处,但更好的解决方案是进行更改,以便它调用一次并存储它们的值,然后对存储的值执行其余操作。但是,您可能还想移动以便仅在约会完全有效时才调用它。addAppointment
years.push(yy)
years.push(yy)
addAppointment
validDate
validTime
years.push(yy)
添加回答
举报