账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js递归函数返回值
    34
    0

    1.为什么这个递归函数没有把最后一项数组深拷贝完成。我的思路哪里出现了问题,请大家指点一下,这个递归函数一直晕
    代码:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <script type="text/javascript">
                var a=[1,2,3,4,5,[1,2,3,4]];
                var j=[];
                function copyarr(obj){
                    var n=obj instanceof Array;
                    for (var i=0;i<obj.length;i++) {
                        if(typeof obj[i]=='object'){
                            copyarr(obj[i]);
                        }else{
                            j[i]=obj[i];
                        }
                    }
                    return j;
                }
                copyarr(a);
                console.log(j)[1,2,3,4,5]
            </script>
        </body>
    </html>
    
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在JavaScript中,递归函数可以被用来解决一些需要重复执行相同操作的问题。递归函数的基本语法如下:

      javascript function recursiveFunction(args, index = 0) { // 函数体 return recursiveFunction(args, index + 1); }

      在这个函数中,args是一个数组或参数列表,index是一个整数,表示当前递归调用的级别。

      函数体通常包含一个或多个return语句,这些语句会将递归调用的结果返回给调用者。

      递归函数的主要缺点是它们可能会导致大量的函数调用和栈溢出,特别是当递归深度过大时。因此,使用递归函数时,需要谨慎处理,以确保函数不会导致溢出。

      此外,递归函数的性能也可能不如其他算法,例如循环或非递归算法。这是因为递归函数的每个函数调用都会在调用栈上创建一个新的线程,这可能会导致栈溢出或性能问题。因此,递归函数通常用于解决特定的问题,而不是用于处理大量数据。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部