js递归实现深拷贝
Posted kirkor-sort
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js递归实现深拷贝相关的知识,希望对你有一定的参考价值。
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递归实现深拷贝的主要内容,如果未能解决你的问题,请参考以下文章