前面的话

前面的博文中介绍了对象拷贝,本文将详细介绍数组复制
push
function copyArray(arr){
var result = [];
for(var i = 0; i < arr.length; i++){
result.push(arr[i]);
}
return result;
}
var obj1=[1,2,3];
var obj2=copyArray(obj1);
console.log(obj1); //[1,2,3]
console.log(obj2); //[1,2,3]
obj2.push(4);
console.log(obj1); //[1,2,3]
console.log(obj2); //[1,2,3,4]
join
使用该方法的缺点是数组中的项全部变成了字符串形式
function copyArray(arr){
var result = [];
result = arr.join().split(',');
return result;
}
var obj1=[1,2,3];
var obj2=copyArray(obj1);
console.log(obj1); //[1,2,3]
console.log(obj2); //['1','2','3']
obj2.push(4);
console.log(obj1); //[1,2,3]
console.log(obj2); //['1','2','3',4]
concat
function copyArray(arr){
var result = [];
result = arr.concat();
return result;
}
var obj1=[1,2,3];
var obj2=copyArray(obj1);
console.log(obj1); //[1,2,3]
console.log(obj2); //[1,2,3]
obj2.push(4);
console.log(obj1); //[1,2,3]
console.log(obj2); //[1,2,3,4]
slice
function copyArray(arr){
var result = [];
result = arr.slice();
return result;
}
var obj1=[1,2,3];
var obj2=copyArray(obj1);
console.log(obj1); //[1,2,3]
console.log(obj2); //[1,2,3]
obj2.push(4);
console.log(obj1); //[1,2,3]
console.log(obj2); //[1,2,3,4]
深拷贝
以上方法实现的仅是数组的浅拷贝,如果要实现数组的深拷贝,需要使用递归方法
function copyArray(arr,result){
var result = result || [];
for(var i = 0; i < arr.length; i++){
if(arr[i] instanceof Array){
result[i] = [];
copyArray(arr[i],result[i]);
}else{
result[i] = arr[i];
}
}
return result;
}
var obj1=[1,2,[3,4]];
var obj2=copyArray(obj1);
console.log(obj1[2]); //[3,4]
console.log(obj2[2]); //[3,4]
obj2[2].push(5);
console.log(obj1[2]); //[3,4]
console.log(obj2[2]); //[3,4,5]
# javascript
# 数组复制
# javascript数组详解
# javascript详解
# jQuery中json对象的复制方式介绍(数组及对象)
# JavaScript 数组的深度复制解析
# javascript 三种数组复制方法的性能对比
# Javascript 复制数组实现代码
# javascript复制对象使用说明
# js中如何复制一个对象并获取其所有属性和属性对应的值
# 原生js实现复制对象、扩展对象 类似jquery中的extend()方法
# 深入理解JavaScript中的对象复制(Object Clone)
# 改进版通过Json对象实现深复制的方法
# JavaScript数组和对象的复制
# 递归
# 仅是
# 详细介绍
# 组中
# 博文
# 变成了
# function
# js
# copyArray
# var
# arr
# brush
# br
# push
# class
# pre
# result
# concat
# split
# join
相关文章:
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
如何高效利用200m空间完成建站?
青岛网站建设如何选择本地服务器?
如何通过.red域名打造高辨识度品牌网站?
如何使用Golang table-driven基准测试_多组数据测量函数效率
如何在建站主机中优化服务器配置?
高端建站三要素:定制模板、企业官网与响应式设计优化
建站之星如何修改网站生成路径?
建站主机服务器选购指南:轻量应用与VPS配置解析
c# 在高并发下使用反射发射(Reflection.Emit)的性能
制作企业网站建设方案,怎样建设一个公司网站?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
如何将凡科建站内容保存为本地文件?
公司网站制作价格怎么算,公司办个官网需要多少钱?
c# 服务器GC和工作站GC的区别和设置
建站之星导航菜单设置与功能模块配置全攻略
内部网站制作流程,如何建立公司内部网站?
C#如何序列化对象为XML XmlSerializer用法
简历在线制作网站免费,免费下载个人简历的网站是哪些?
电商网站制作价格怎么算,网上拍卖流程以及规则?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
北京建设网站制作公司,北京古代建筑博物馆预约官网?
如何配置WinSCP新建站点的密钥验证步骤?
音乐网站服务器如何优化API响应速度?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
如何获取免费开源的自助建站系统源码?
专业公司网站制作公司,用什么语言做企业网站比较好?
建站之星代理如何优化在线客服效率?
如何自定义建站之星模板颜色并下载新样式?
建站之星客服服务时间及联系方式如何?
婚礼视频制作网站,学习*后期制作的网站有哪些?
定制建站流程步骤详解:一站式方案设计与开发指南
家具网站制作软件,家具厂怎么跑业务?
建站之星后台密码遗忘?如何快速找回?
如何零基础在云服务器搭建WordPress站点?
XML的“混合内容”是什么 怎么用DTD或XSD定义
网站制作网站,深圳做网站哪家比较好?
公众号网站制作网页,微信公众号怎么制作?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
如何在Windows服务器上快速搭建网站?
html制作网站的步骤有哪些,iapp如何添加网页?
建站主机功能解析:服务器选择与快速搭建指南
成都响应式网站开发,dw怎么把手机适应页面变成网页?
建站168自助建站系统:快速模板定制与SEO优化指南
建站之星如何助力网站排名飙升?揭秘高效技巧
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
如何基于云服务器快速搭建网站及云盘系统?
成都网站制作报价公司,成都工业用气开户费用?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
*请认真填写需求信息,我们会在24小时内与您取得联系。