博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js_数组对象的浅克隆
阅读量:5323 次
发布时间:2019-06-14

本文共 748 字,大约阅读时间需要 2 分钟。

 

如果再考虑更奇葩更复杂的情况,例如我们定义:

var obj = [{ "a": { "a1": ["a11", "a12"], "a2": 1 }, "b": 2 }, ["c", { "d": 4, "e": 5 }]];

这是一个由对象、数组杂合成的奇葩数组,虽然我们平时写程序基本不可能这么折腾自己,但是可以作为一种特殊情况来考虑,这样我们就可以结合之前说的方法去拓展拷贝函数:

var sourceCopy = source instanceof Array ? [] : {};    for (var item in source) {        sourceCopy[item] = typeof source[item] === 'object' ? objDeepCopy(source[item]) : source[item];    }    return sourceCopy;}var objCopy = objDeepCopy(obj);objCopy[0].a.a1[1] = "a13";objCopy[1][1].e = "6";obj   // => [{ "a": { "a1": ["a11", "a12"], "a2": 1 }, "b": 2 }, ["c", { "d": 4, "e": 5 }]]objCopy   // => [{ "a": { "a1": ["a11", "a13"], "a2": 1 }, "b": 2 }, ["c", { "d": 4, "e": 6 }]]

这样它就可以作为一个通用函数替我们进行深拷贝操作了。

 

转载于:https://www.cnblogs.com/wymbk/p/8708563.html

你可能感兴趣的文章
js获取前n天的时间
查看>>
九、JSP入门(1)
查看>>
vs2010 用户控件拖到aspx页面不可用
查看>>
C# 压缩图片到指定宽度,假如图片小于指定宽度 判断图片大小是否大于指定大小(KB) 如果大于则压缩图片质量 宽高不变...
查看>>
JS date对象的减法处理
查看>>
autofac 遇到构造函数问题
查看>>
Uninstall Tool3.5.3
查看>>
springcloud12---sidecar
查看>>
连接mysql数据库
查看>>
[Flex] ButtonBar系列——flex3 ButtonBar各项之间的间距调整
查看>>
电信云物资网崩溃问题原因
查看>>
java-方法。(新手)
查看>>
css选择器总结
查看>>
Hibernate 悲观锁,乐观锁
查看>>
OSPF里几个特殊区域(stub、Totally stubby、NSSA、Totally NSSA)总结
查看>>
linux下端口被占用
查看>>
.net实现汉字转拼音缩写功能
查看>>
20145233韩昊辰 第(三)周总结
查看>>
ROS理解参数服务器param demo
查看>>
添加Centos最新yum源
查看>>