fengchuanyu 8 miesięcy temu
rodzic
commit
cb52499ccd
1 zmienionych plików z 38 dodań i 2 usunięć
  1. 38 2
      5_ES6/练习题4_深度克隆.html

+ 38 - 2
5_ES6/练习题4_深度克隆.html

@@ -22,7 +22,7 @@
 
 
         var arr = [1,2,3,['a','b','c']];
-        var obj = {
+        var obj1 = {
             a:1,
             b:2,
             c:{
@@ -30,8 +30,44 @@
                 num:10
             }
         }
+
+        // for(let item in obj){
+        //     console.log(obj[item]);
+        // }
+
+        // var objName = 'a';
+        // console.log(obj[objName]);
+        // console.log(typeof arr,typeof obj);
+        // console.log(Array.isArray(arr));
+        function deepClone(obj){
+            var res = null
+            if(typeof obj == "object"){
+                if(Array.isArray(obj)){
+                    res = [];
+                    for(let val of obj){
+                        res.push(deepClone(val))
+                    }
+                }else{
+                    res = {};
+                    for(let val in obj){
+                        res[val] = deepClone(obj[val])
+                    }
+                }
+            }else{
+                res = obj
+            }
+
+            return res
+        }
+
         var newArr = deepClone(arr);
-        var newObj = deepClone(obj);
+        // arr[0] = "hello";
+        // arr[3][0] = "world";
+        // console.log(arr,newArr)
+        var newObj = deepClone(obj1);
+        // obj1.a = "hello";
+        // obj1.c.num = 1000;
+        // console.log(obj1,newObj)