老师,我依葫芦画瓢,按照数组中深克隆的相关理解,重新写了个对象深克隆 ,不知道是否有问题,烦请指教!谢谢!

来源:2-10 对象的深浅克隆(2)

weixin_慕码人6478092

2022-02-17 17:41:19

相关代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>deepClone</title>
</head>

<body>
    <script>
        var obj1 = {
            a: 1,
            b: 2,
            c: [3,4],
            d:{
                e:11,
                g:[5,6]
            }
        };

        function deepClone(obj) {
            var obj2 = {};
            for (var k in obj) {
                if (Array.isArray(obj[k])) {
                    var result = [];
                    for(var i = 0; i < obj[k].length; i++){
                        result.push(obj[k][i]);
                    };
                    obj2[k] = result;
                } else if (typeof (obj[k]) == 'object') {
                    obj2[k] = deepClone(obj[k]);
                } else {
                    obj2[k] = obj[k];
                }
            }
            return obj2;
        }
        var obj3 = deepClone(obj1);
        obj3.c.push(5);
        obj3.d.f = 111;
        obj3.d.g.push(999);
        console.log(obj1);
        console.log(obj3);
        console.log(deepClone(obj1));
       
    </script>

</body>

</html>



写回答

2回答

好帮手慕星星

2022-02-17

同学你好,首先看代码逻辑,然后用代码测试,这是正常的流程。

代码了逻辑没问题,老师在源代码的基础上又嵌套了一层对象

https://img.mukewang.com/climg/620e1c9f09efb8d403890306.jpg

测试效果没问题即可。

0
heixin_慕码人6478092
hp>感谢老师!

h022-02-17
共1条回复

好帮手慕星星

2022-02-17

同学你好,对象克隆是没问题的,很棒!祝学习愉快~

0
heixin_慕码人6478092
hp>老师,你为何能做到这么快就判断出没有问题?我自己写完测试了,对象中有数组,数组中再有对象,数组中有数组,自己感觉是没有问题,但实际上发出来请老师帮忙看的时候,自己也不确定是否理解的对。

h022-02-17
共1条回复

0 学习 · 15276 问题

查看课程