Javascript 复制数组实现代码


Posted in Javascript onNovember 26, 2009

一、 错误实现
不少人可能直接就用等号进行赋值了:

var array1 = new Array("1","2","3"); 
var array2; 
array2 = array1; 
array1.length = 0; 
alert(array2); //返回为空

这种做法是错的,因为javascript分原始类型与引用类型(与java、c#类似)。Array是引用类
型。array2得到的是引用,所以对array1的修改会影响到array2。
二、 使用slice()
可使用slice()进行复制,因为slice()返回也是数组。
var array1 = new Array("1","2","3"); 
var array2; 
array2 = array1.slice(0); 
array1.length = 0; 
alert(array2); //返回1、2、3

三、 使用concat()
注意concat()返回的并不是调用函数的Array,而是一个新的Array,所以可以利用这一点进行复制。
var array1 = new Array("1","2","3"); 
var array2; 
array2 = array1.concat(); 
array1.length = 0; 
alert(array2); //返回1、2、3

四、 测试
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>Array Test</title> 
<script type="text/javascript"> 
var array1; 
var array2; 
function clone1() { 
array1 = new Array("1","2","3"); 
array2 = array1; 
array1.length = 0; 
alert(array2); 
} 
function clone2() { 
array1 = new Array("1","2","3"); 
array2 = array1.slice(0); 
array1.length = 0; 
alert(array2); 
} 
function clone3() { 
array1 = new Array("1","2","3"); 
array2 = array1.concat(); 
array1.length = 0; 
alert(array2); 
} 
</script> 
</head> 
<body> 
<input type="button" value="clone1" onclick="clone1()" /><br /> 
<input type="button" value="clone2" onclick="clone2()" /><br /> 
<input type="button" value="clone3" onclick="clone3()" /><br /> 
</body> 
</html>

在IE8及FF3.0下均通过测试
Javascript 相关文章推荐
jquery利用event.which方法获取键盘输入值的代码
Oct 09 Javascript
web前端开发JQuery常用实例代码片段(50个)
Aug 28 Javascript
jquery判断复选框是否被选中的方法
Oct 16 Javascript
javascript断点调试心得分享
Apr 23 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
Aug 17 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
Aug 29 Javascript
手机端js和html5刮刮卡效果
Sep 29 Javascript
原生js实现倒计时--2018
Feb 21 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
Mar 09 Javascript
简单谈谈require模块化jquery和angular的问题
Jun 23 jQuery
微信小程序动态生成二维码的实现代码
Jul 25 Javascript
js实现html滑动图片拼图验证
Jun 24 Javascript
js setattribute批量设置css样式
Nov 26 #Javascript
Javascript 二维数组
Nov 26 #Javascript
isArray()函数(JavaScript中对象类型判断的几种方法)
Nov 26 #Javascript
Exitjs获取DataView中图片文件名
Nov 26 #Javascript
网页中的图片的处理方法与代码
Nov 26 #Javascript
js 动态选中下拉框
Nov 26 #Javascript
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
Nov 26 #Javascript
You might like
PHP输出时间差函数代码
2013/01/28 PHP
PHP文件缓存类实现代码
2015/10/26 PHP
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
PHP+mysql+Highcharts生成饼状图
2015/05/04 Javascript
javascript实现的上下无缝滚动效果
2016/09/19 Javascript
VUE axios发送跨域请求需要注意的问题
2017/07/06 Javascript
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
2017/12/26 Javascript
JavaScript实现获取select下拉框中第一个值的方法
2018/02/06 Javascript
nodejs+express搭建多人聊天室步骤
2018/02/12 NodeJs
微信小程序如何播放腾讯视频的实现
2019/09/20 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
[40:16]TFT vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
利用python爬取软考试题之ip自动代理
2017/03/28 Python
python实现按行分割文件
2019/07/22 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
微软新西兰官方网站:Microsoft New Zealand
2018/08/17 全球购物
NULL是什么,它是怎么定义的
2015/05/09 面试题
食品营养与检测应届生求职信
2013/11/08 职场文书
生物科学专业个人求职信范文
2013/12/05 职场文书
工商企业管理专业自荐信范文
2014/04/12 职场文书
2014预备党员党课学习心得范文
2014/07/08 职场文书
政风行风评议整改方案
2014/09/15 职场文书
公民授权委托书
2014/10/15 职场文书
2014年车间工作总结
2014/11/21 职场文书
2014年保洁工作总结
2014/11/24 职场文书
钓鱼岛事件感想
2015/08/11 职场文书
信息技术研修心得体会
2016/01/08 职场文书
一文搞懂python异常处理、模块与包
2021/06/26 Python
python数据处理之Pandas类型转换
2022/04/28 Python