js递归的问题。

数字回文,比如:输入1,5,则返回123454321;
我的代码如下:

            var res = '';
            function num2(n, m) {
                if(n == m + m) {
                    console.log(res);
                    return res;
                }
                if(n < m) {
                    res += n;
                } else if(n == m) {
                    res += m;
                } else {
                    res += m + m - n;
                }
                console.log(res);
                num2(n + 1, m);
            }
            
            alert(num2(1,5));

我的问题是,在chrmo里面打印能正确打印,但是最下面的alert只能得到undefined,我猜测是我的递归判断有错。
但是也找不出具体在哪里。

阅读 3.6k
4 个回答

打印的当然是undefined ,你函数又没有返回值。

你没有return 当然是undefined了

函数默认返回值为undefined

新手上路,请多包涵

return num2(n + 1, m);

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题