javascript递归函数赋值问题

1.为什么这个j里面赋值是无限嵌套。想不明白,希望大家帮我一下。

<!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') {

                        j[i]=copyarr(obj[i]);

                    } else {

                        j[i] = obj[i];

                    }

                }

                return j;

            }

            copyarr(a);

            console.log(j)

        </script>

    </body>


</html>

https://img2.mukewang.com/5c91ecf20001506308000530.jpg

偶然的你
浏览 758回答 3
3回答

绝地无双

你每次都是操作的同一个数组

森栏

你每次递归进去都用的是函数外面的 变量 j,这样做是错的。你应该在函数里面定义 j
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript