【发布时间】:2023-03-21 06:34:01
【问题描述】:
我目前正在学习 CoffeeScript,因为它比 JavaScript 更具“表现力”,因此,我想知道如何优化下面的代码
lastDay = 6
weekdays = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
weeksToDivide = 0
for x in [1..9001]
if x % 5 == 0
if x % 4 == 0
if x % 3 == 0
nextDay = x
break
totalDays = lastDay + nextDay
day = (totalDays -= 7 while totalDays > 7)
weekday = weekdays[day[day.length - 1] - 1]
alert "Days until next meeting: #{nextDay}"
alert "That day is on a #{weekday}"
我主要是在寻找一种优化 if 嵌套的方法,但任何其他提示也将不胜感激。
提前致谢。
编辑:
我很愚蠢,忘记了数学是如何工作的,谢谢 Zeta。
另外,感谢 Epidemia 的进一步优化。
【问题讨论】:
-
这似乎是codereview.stackexchange.com 的工作,因为您的脚本已经在运行。此外,由于您所有的数字都是相对质数(3、4、5),您可以简单地取乘积并用一个表达式解决您的问题,而不是使用循环。
-
呃,你觉得你能给我举个例子吗?
-
nextDay = 3 * 4 * 5。 60是第一个能被三、四和五整除的数字。这不是 CoffeeScript 的属性,那是简单的数学;)。 -
哦,我现在觉得自己很蠢:/