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 相关文章推荐
Javascript实现的分页函数
Dec 22 Javascript
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
Dec 02 Javascript
Prototype PeriodicalExecuter对象 学习
Jul 19 Javascript
window.ActiveXObject使用说明
Nov 08 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
Jul 31 Javascript
javascript学习笔记(五)原型和原型链详解
Oct 08 Javascript
JS实现从表格中动态删除指定行的方法
Mar 31 Javascript
JavaScript代码性能优化总结(推荐)
May 16 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
Mar 09 Javascript
vue中如何去掉空格的方法实现
Nov 09 Javascript
Vue.js组件通信之自定义事件详解
Oct 19 Javascript
JS实现悬浮球只在一侧滑动并且是横屏状态下
Aug 19 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学习资源和链接.
2006/12/05 PHP
基于php权限分配的实现代码
2013/04/28 PHP
微信支付PHP SDK之微信公众号支付代码详解
2015/12/09 PHP
一段实用的php验证码函数
2016/05/19 PHP
PHP通过加锁实现并发情况下抢码功能
2016/08/10 PHP
ThinkPHP 3.2.2实现事务操作的方法
2017/05/05 PHP
Laravel框架数据库迁移操作实例详解
2020/04/06 PHP
TP3.2框架分页相关实现方法分析
2020/06/03 PHP
javascript编程起步(第四课)
2007/01/10 Javascript
工作需要写的一个js拖拽组件
2011/07/28 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
2015/02/27 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
AngularJS 表达式详解及实例代码
2016/09/14 Javascript
AngularJS ng-style中使用filter
2016/09/21 Javascript
vue父组件通过props如何向子组件传递方法详解
2017/08/16 Javascript
Python面向对象编程基础解析(二)
2017/10/26 Python
Python日志无延迟实时写入的示例
2019/07/11 Python
python如何从文件读取数据及解析
2019/09/19 Python
Python缓存技术实现过程详解
2019/09/25 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
2020/05/29 Python
CSS3结构性伪类选择器九种写法
2012/04/18 HTML / CSS
在线购买廉价折扣书籍和小说:BookOutlet.com
2018/02/19 全球购物
药学专业大学生自荐信
2013/09/28 职场文书
会计主管岗位职责
2014/01/03 职场文书
电脑租赁公司创业计划书
2014/01/08 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
《雨点儿》教学反思
2014/04/14 职场文书
促销活动总结怎么写
2014/06/25 职场文书
班级体育活动总结
2014/07/05 职场文书
个人授权委托书范文
2014/09/21 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
90条交通安全宣传标语
2019/10/12 职场文书
Linux中文件的基本属性介绍
2022/06/01 Servers