我有一个javascript脚本,需要根据两个参数找出日期:用户键入的日期,传递到'date'参数,以及它应该从第一个参数中输出的天数
该函数在return语句之前运行良好。 return语句返回'null'我正在努力弄清楚我在语法中做错了什么来返回更新的日期值。请帮助。
function calcDate(date, holdDays){
var expirationDate = null;
var validDate = noWeekendsOrHolidays(date); //jqueryui datepicker
if(holdDays != 0){
date.setDate(date.getDate() + 1);
if(validDate[0] == true){
calcDate(date, holdDays - 1)
} else {
calcDate(date, holdDays)
}
} else{
expirationDate = moment(date);
return expirationDate;
}
return expirationDate;
}
var expirationDate = calcDate("3/7/2016",3) //expect 3/10/2016
答案 0 :(得分:0)
我可能已经通过在代码块的开头设置变量值并更改if语句来解决(@forgivenson,在阅读上面的注释后加入了一些想法)。
function calcDate(date, holdDays){
var expirationDate = date;
var validDate = noWeekendsOrHolidays(date);
if(holdDays != 0 || validDate[0] == false){ //recursive call will apply OR weekend/holiday
date.setDate(date.getDate() + 1);
if(validDate[0] == true){
calcDate(date, holdDays - 1) //decrement holdDays and make recursive call
}
else{
calcDate(date, holdDays) //recursive call (weekend/holiday)
}
}
return expirationDate;
}