功能返回值

时间:2016-03-06 21:50:09

标签: javascript

我有一个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

1 个答案:

答案 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;
}