js递归实现深拷贝

2021-02-13 04:22

阅读:636

标签:lse   function   深拷贝   else   nbsp   type   ceo   class   实现   

 1         // 深拷贝
 2       function cloneDeep(obj) {
 3         // 3.根据obj为对象或者数组,产生一个空的对象或数组,存放数据
 4         var newobj = obj instanceof Array ? [] : {},
 5         // 1.for...in进入循环
 6         for (var k in obj) {
 7           // 2.判断对象的第一个属性是否为数组或者对象,如果是,则进入递归
 8           // if (obj[k] instanceof Array) {
 9           //   newobj[k] = cloneDeep(obj[k])
10           // } else if (obj[k] instanceof Object) {
11           //   newobj[k] = cloneDeep(obj[k])
12           // }
13           // 4.上面两个执行逻辑一样,进行合并
14           if (typeof obj[k] === ‘object‘) {
15             newobj[k] = cloneDeep(obj[k])
16           } else {
17             // 5.如果数据为基本类型,则直接赋值
18             newobj[k] = obj[k]
19           }
20         }
21         // 6.把存放了数据的新对象返回出去
22         return newobj
23       }    

 

js递归实现深拷贝

标签:lse   function   深拷贝   else   nbsp   type   ceo   class   实现   

原文地址:https://www.cnblogs.com/kirkor-sort/p/13022427.html


评论


亲,登录后才可以留言!