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

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

相关代码:

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



正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕星星 2022-02-17 18:08:36

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

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

https://img1.sycdn.imooc.com//climg/620e1c9f09efb8d403890306.jpg

测试效果没问题即可。

好帮手慕星星 2022-02-17 17:46:31

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

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

    2022-02-17 17:51:11
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师