我已经编写了一个函数,它将总计一定数量并将其返回给我
这是函数
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。
有什么想法吗?
答案 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));