为什么在我的列表中创建了 5 个元素?需要创建理货功能。JavaScript

主要焦点在 JS 中,“添加约会”功能正在循环,“年”值以包含 5 个元素的列表结束,即使只进行了一个约会。我认为两个额外的是从添加约会功能创建的,另外两个是从并发约会功能创建的。这是一个小组项目,我没有做这个组件,这就是我努力理解和解决这个问题的原因。

我试图将 yy 变量推入年份列表,然后创建一个计数函数来列出每年有多少约会。

非常感谢任何建议!如果我没有详细说明,请告诉我!:)

提前致谢


宝慕林4294392
浏览 97回答 2
2回答

慕仙森

问题是您每次都调用 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 也这样做。

www说

您的问题似乎来自函数years内的追加validDate,该函数在代码的其他地方被视为非变异函数。由于每次需要 tha 值时validDate都会在函数内重复调用,因此该行也将被重复调用。您可以将该行移到别处,但更好的解决方案是进行更改,以便它调用一次并存储它们的值,然后对存储的值执行其余操作。但是,您可能还想移动以便仅在约会完全有效时才调用它。addAppointmentyears.push(yy)years.push(yy)addAppointmentvalidDatevalidTimeyears.push(yy)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript