码迷,mamicode.com
首页 > Web开发 > 详细

js递归实现深拷贝

时间:2020-06-01 00:54:32      阅读:88      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!