Javascript 函数没有重复all if语句

Javascript 函数没有重复all if语句,javascript,Javascript,嗨,我有一个问题,我的代码只是在执行一个循环,但是如果我想控制台log I,循环就可以工作 控制台中唯一正常记录的内容是: 3772021 (代码如下): let time=(数学地板(target/aDM)); 设tDay=currentDate[0]+时间 设tMonth=currentDate[1] 设tYear=currentDate[2] targetDate() 函数targetDate(){ 设i=0 而(i30){ tMonth++; tDay=(tDay-30); } 如果(

嗨,我有一个问题,我的代码只是在执行一个循环,但是如果我想控制台log I,循环就可以工作 控制台中唯一正常记录的内容是: 3772021

(代码如下):

let time=(数学地板(target/aDM));
设tDay=currentDate[0]+时间
设tMonth=currentDate[1]
设tYear=currentDate[2]
targetDate()
函数targetDate(){
设i=0
而(i<100){
如果(tMonth%2===1&&tMonth&&tDay>30){
tMonth++;
tDay=(tDay-30);
}
如果(tYear%2===0&&tMonth!=2&&tDay>30){
tMonth++;
tDay=(tDay-30);
}
如果(tMonth%2===1&&tMonth!=2&&tDay>31){
tMonth++;
tDay=(tDay-31)
}
如果(t月>28日){
tDay++;
tDay=(tDay-31)
}
如果(t月>12日){
tMonth=(tMonth-12)
泰尔++
}
i++;
}
console.log(tDay、tMonth、tYear)

}
此代码有几个问题

  • 使用全局变量不是很好的做法。您应该将变量传递到函数中

  • 您可能希望代码中包含“else”。否则,代码可能会在同一次迭代i时同时执行其中几个条件

  • 您的逻辑:(tMonth%2==1)有缺陷,因为如果您从tMonth%2==0开始,它将无法到达1

  • 所有这些逻辑似乎过于复杂,可能会失败。如果您只是简单地尝试一年中的几天,那么使用标准日期函数要简单得多

  • 闰年呢

  • 月份并不是简单地从30到31交替出现。事实上,在年中(七月和八月),你有31天的背靠背。

  • 如果,则应使用
    else。否则,每个
    if
    语句将使用上一个语句中更新的
    tMonth
    。您在哪里设置
    target
    currentDate
    。为了澄清问题,可以将函数的输入指定为常量,并说出您期望的结果。@Barmar currentDate和Target在代码中设置得很早,但这些并没有导致错误problem@BipedPhill我不认为把它们改成常数就能解决问题。该函数将尝试对constan变量进行赋值。currentDate=[10,01,2021]时间=397预期输出=15。2.2022我怀疑第一个条件是为了解决问题6,但他们遗漏了这一部分<代码>&&tMonth
    大概应该是
    &&tMonth>7