JSON浅拷贝和深拷贝

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>

    var json = {
        "name": "liming",
        "sex": "man",
        "age": 19,
        "friends": {

            "name": "xiaoming",
            "sex": "man",
            "age": 20
        }
//                [
//            {
//                "name": "xiaoming",
//                "sex": "man",
//                "age": 20
//            },
//            {
//                "name": "xiaoming",
//                "sex": "man",
//                "age": 20
//            }
//        ]

    }




    function copy(json) {
        var newJson = {};
        function obj(newO, oldO, x) {
            var y;
            newO[x] = {};
            for (y in oldO[x]) {
                newO[x][y] = oldO[x][y]
            }
        }

        for (x in json) {
            if (json[x] instanceof Array) {
                newJson[x] = [];
                for (k in json[x]) {
                    if (json[x][k] instanceof Object) {
//                        obj(newJson[x], json[x], k)
                        newJson[x]=copy(json[x])
                    } else {
                        newJson[x][k] = json[x][k]
                    }
                }
            } else if (json[x] instanceof Object) {
//                obj(newJson, json, x)
                newJson[x]=copy(json[x])

            } else {
                newJson[x] = json[x]
            }
        }
        return newJson
    }



    newJson=copy(json)
    json.friends.name = "hadaffsfewwerrw23ah";
    json.name = "hada23ah";
    //    json.friends.name="haaa1qwq12aaaaaah";
    document.write(JSON.stringify(json) + "<br />");


    document.write(JSON.stringify(newJson))


    //  可用
    //
    //    for (x in json) {
    //        if (json[x] instanceof Array) {
    //            newJson[x] = [];
    //            for (k in json[x]) {
    //                if (json[x][k] instanceof Object) {
    //                    newJson[x][k] = {}
    //                    for (t in json[x][k]) {
    //                        newJson[x][k][t] = json[x][k][t];
    //                    }
    //                } else {
    //                    newJson[x][k] = json[x][k]
    //                }
    //            }
    //        } else if (json[x] instanceof Object) {
    //            newJson[x] = {};
    //            for (y in json[x]) {
    //                newJson[x][y] = json[x][y]
    //            }
    //
    //        } else {
    //            newJson[x] = json[x]
    //
    //        }
    //
    //    }
</script>

</body>
</html>
阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭