返回函数返回错误的值

时间:2018-03-10 15:57:29

标签: javascript

我已经编写了一个函数,它将总计一定数量并将其返回给我

这是函数

function getTotal(val, total) {

    if (total.length > 1 || total == 0) {
        for (var i = 0; i < val.length; i++) {
            total = total + parseInt(val[i])
        }
    };

    if (('' + total).length > 1) {
        val = '' + total;
        total = 0;

        getTotal(val, total);
    };

    return total;
};

var finalTotal = getTotal('04151993', 0);

例如val = '04151993'根据我的功能,它将运行两次,最后它应该返回5;

调试时我可以看到总数是5但是当返回代码执行时它返回值0。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这是因为你在递归调用getTotal时没有返回。参见:

function getTotal(val, total) {
    if (total.length > 1 || total == 0) {
        for (var i = 0; i < val.length; i++) {
            total = total + parseInt(val[i])
        }
    };

    if (('' + total).length > 1) {
        val = '' + total;
        total = 0;

        return getTotal(val, total); // return here
    };

    return total;
};

console.log(getTotal('04151993', 0));