JavaScript数组复制详解
发布时间 - 2026-01-10 22:49:23 点击率:次前面的话

前面的博文中介绍了对象拷贝,本文将详细介绍数组复制
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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
重庆市网站制作公司,重庆招聘网站哪个好?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
Laravel中的withCount方法怎么高效统计关联模型数量
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
香港服务器选型指南:免备案配置与高效建站方案解析
如何在VPS电脑上快速搭建网站?
如何在宝塔面板中创建新站点?
Laravel观察者模式如何使用_Laravel Model Observer配置
JavaScript如何操作视频_媒体API怎么控制播放
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
php打包exe后无法访问网络共享_共享权限设置方法【教程】
EditPlus中的正则表达式实战(6)
高端企业智能建站程序:SEO优化与响应式模板定制开发
非常酷的网站设计制作软件,酷培ai教育官方网站?
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
简单实现Android文件上传
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】
phpredis提高消息队列的实时性方法(推荐)
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
Python正则表达式进阶教程_复杂匹配与分组替换解析
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
如何在七牛云存储上搭建网站并设置自定义域名?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
WEB开发之注册页面验证码倒计时代码的实现
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
进行网站优化必须要坚持的四大原则
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
jQuery 常见小例汇总
Laravel如何生成URL和重定向?(路由助手函数)
nginx修改上传文件大小限制的方法
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
JavaScript Ajax实现异步通信
如何在建站之星网店版论坛获取技术支持?
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
如何挑选高效建站主机与优质域名?
bootstrap日历插件datetimepicker使用方法
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
装修招标网站设计制作流程,装修招标流程?
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
如何快速搭建自助建站会员专属系统?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?

