在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ javascript遞歸函數(shù)賦值問題

javascript遞歸函數(shù)賦值問題

1.為什么這個j里面賦值是無限嵌套。想不明白,希望大家?guī)臀乙幌隆?/p>

<!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>

圖片描述

回答
編輯回答
逗婦乳

你每次遞歸進(jìn)去都用的是函數(shù)外面的 變量 j,這樣做是錯的。

你應(yīng)該在函數(shù)里面定義 j

2017年2月12日 16:12
編輯回答
玩控

你每次都是操作的同一個數(shù)組

2017年8月29日 15:56
編輯回答
別傷我

因為你的j是全局變量

因為
copyarr方法return j;
所以
j[i]=copyarr(obj[i]);
相當(dāng)于
j[i]=j;

j是全局的,所以j[i]包含了j之前的數(shù)據(jù)

所以把

var j = [];
function copyarr(obj) {

改為

function copyarr(obj) {
var j = [];
2017年1月10日 05:41