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 相关文章推荐
简单时间提示DEMO从0开始一直进行计时
Nov 19 Javascript
利用a标签自动解析URL分析网址实例
Oct 20 Javascript
Javascript 是你的高阶函数(高级应用)
Jun 15 Javascript
Actionscript与javascript交互实例程序(修改)
Sep 22 Javascript
DWR3 访问WEB元素的两种方法实例详解
Jan 03 Javascript
JS简单获取日期相差天数的方法
Apr 24 Javascript
微信小程序 图片上传实例详解
May 05 Javascript
原生js 封装get ,post, delete 请求的实例
Aug 11 Javascript
JS 仿支付宝input文本输入框放大组件的实例
Nov 14 Javascript
js实现蒙版效果
Jan 11 Javascript
vue 使用async写数字动态加载效果案例
Jul 18 Javascript
详谈vue中router-link和传统a链接的区别
Jul 22 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
关于Intype一些小问题的解决办法
2008/03/28 PHP
php版淘宝网查询商品接口代码示例
2014/06/17 PHP
PHP封装XML和JSON格式数据接口操作示例
2019/03/06 PHP
PHP项目多语言配置平台实现过程解析
2020/05/18 PHP
PHP如何获取Cookie并实现模拟登录
2020/07/16 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
农历与西历对照
2006/09/06 Javascript
JQuery 无废话系列教程(二) jquery实战篇上
2009/06/23 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
Javascript中的Callback方法浅析
2015/03/15 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
vue项目使用微信公众号支付总结及遇到的坑
2018/10/23 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
分享Python文本生成二维码实例
2016/01/06 Python
python 通过logging写入日志到文件和控制台的实例
2018/04/28 Python
python format 格式化输出方法
2018/07/16 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
努比亚手机官网:nubia
2016/10/06 全球购物
Mountain Warehouse澳大利亚官网:欧洲家庭户外品牌倡导者
2016/11/20 全球购物
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
美国流行背包品牌:JanSport(杰斯伯)
2018/03/02 全球购物
Fnac西班牙官网:法国文化和电子产品零售商
2021/03/14 全球购物
优秀本科生求职推荐信
2014/02/24 职场文书
生态养殖创业计划书
2014/05/06 职场文书
教师对照四风自我剖析材料
2014/09/30 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
狮子林导游词
2015/02/03 职场文书
2015年教研室工作总结范文
2015/05/23 职场文书
vue3如何优雅的实现移动端登录注册模块
2021/03/29 Vue.js
Java输出Hello World完美过程解析
2021/06/13 Java/Android
Java中CyclicBarrier和CountDownLatch的用法与区别
2021/08/23 Java/Android