Last active
August 29, 2015 14:01
-
-
Save reacher-lu/85f29c3422131cc156be to your computer and use it in GitHub Desktop.
JS复制数组
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
一、 错误实现 | |
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 | |
四、jquery方法 | |
var array1 = new Array("1","2","3"); | |
var array2; | |
array2 = $.extend(true, {}, array1); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment