Javascript 复制数组实现代码_基础知识
程序员文章站
2022-03-25 20:07:25
...
一、 错误实现
不少人可能直接就用等号进行赋值了:
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
四、 测试
Array Test
在IE8及FF3.0下均通过测试
不少人可能直接就用等号进行赋值了:
复制代码 代码如下:
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
四、 测试
复制代码 代码如下:
在IE8及FF3.0下均通过测试
推荐阅读
-
JavaScript 复制对象【Object.assign方法无法实现深复制】
-
python复制文件代码实现
-
C语言/C++编程学习:栈的代码实现之数组方案
-
Javascript获取CSS伪元素属性的实现代码_javascript技巧
-
javascript 学习笔记(六)浏览器类型及版本信息检测代码_基础知识
-
关于实现代码语法标亮 dp.SyntaxHighlighter_javascript技巧
-
javascript中的对象和数组的应用技巧_基础知识
-
JS实现一键回顶功能示例代码_javascript技巧
-
Javascript查看大图功能代码实现
-
JS实现商品倒计时实现代码_javascript技巧