手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >Javascript 复制数组实现代码
Javascript 复制数组实现代码
摘要:一、错误实现不少人可能直接就用等号进行赋值了:复制代码代码如下:vararray1=newArray("1","2","3");vararr...

一、 错误实现

不少人可能直接就用等号进行赋值了:

复制代码 代码如下:

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" /><br />

<input type="button" value="clone2" /><br />

<input type="button" value="clone3" /><br />

</body>

</html>

在IE8及FF3.0下均通过测试

【Javascript 复制数组实现代码】相关文章:

javascript模拟评分控件实现方法

javascript基于DOM实现省市级联下拉框的方法

javascript瀑布流布局实现方法详解

让插入到 innerHTML 中的 script 跑起来的实现代码

理解javascript封装

原生javascript实现解析XML文档与字符串

JavaScript静态的动态

JavaScript实现鼠标拖动效果的方法

JavaScript中isPrototypeOf函数作用和使用实例

javascript中动态函数用法

精品推荐
分类导航