Node.js递归求和函数返回undefined而非预期值问题
解决递归累加函数返回undefined的问题
你的问题出在递归调用时没有返回结果,导致最外层函数调用无法拿到最终的计算值。
看你的代码,当num != 0时,你调用了summation(num, value),但没有用return把这个递归调用的结果返回给上层函数。虽然最后一次递归(num=0)确实返回了正确的6,但这个值没有被传递回最初的调用层,上层函数执行完递归调用后没有返回值,默认返回undefined。
修正后的代码如下:
function summation(num, args=0) { let value = args; value += num; num -= 1; if(num == 0){ return value; } // 加上return,将递归结果传递回上层 return summation(num, value); } console.log(summation(3)); // 输出6
修改点就是在递归调用前添加return,让每一层递归都把计算结果向上传递,这样最外层的函数调用就能拿到最终的累加值。
内容的提问来源于stack exchange,提问作者Macddee
相关产品推荐
相关产品推荐

