深度拷贝

1.对象只有一层是,可以使用es6的对象扩展
var obj = {a: 123}
var obj1 = {...obj}

2.对象是多层嵌套时
方法一:先将对象转为字符串再解析
var obj2 = {
a: 123,
b: {
c: 4,
}
}
var obj3 = JSON.parse(JSON.stringify(obj2))

方法二:使用循环将对象中的值一个个取出赋值给新的对象
function deepCopy(obj) {
if(obj && typeof obj === 'object' ) {
var newobj = obj instanceof Array ? [] : {}
for(var item in obj) {
newobj[item] = typeof obj[item] ==='object' ? deepCopy(obj[item]) : obj[item]
}
return newobj
}
}
var arr3 = [1,2,[4,5]]
var arr4 = deepCopy(arr3)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容