重复函数返回undefined

时间:2014-07-18 10:25:59

标签: javascript function undefined

我有一个函数可以检查一个数字是否可以被2.5整除,如果它没有加0.5则会再次使用新值调用它自己。当我像下面那样调用它时返回undefined但如果我在函数内console.log而不是return那么显示正确的向上舍入值。

function n(num){
    if(num % 2.5 === 0){
        return num;
    }else{
        num += 0.5;
        n(num)  
    }
}

console.log(n(13.5))

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您需要返回递归调用,以便再次检查您的条件,直到满足if条件:

function n(num){
    if(num % 2.5 === 0){
        return num;
    }else{
        num += 0.5;
        return n(num); //<-- add return
    }
}

console.log(n(13.5));

答案 1 :(得分:1)

是的,因为第二个n(num)调用没有向原始调用者返回任何内容。

成功:

    else{
        num += 0.5;
        return n(num);
    }