javascript 复制数组

常用复制数组的几种方法

直接arr1 = arr2 这种方法复制的是原数组的引用,修改复制出来的新数组会改变原来数组的内容

var arr = [1, 2, 3, 6];
var arr_ = arr;

console.log(arr_);//1,2,3,6

arr_.splice(2, 0, 4, 5);
console.log(arr_);//1,2,3,4,5,6;
consoe.log(arr);//1,2,3,4,5,6;

  因为复制的是数组的引用所以会改变原数组,当然修改原数组也可以改变新数组。

var array1 = new Array("1","2","3"); 
var array2; 
array2 = array1; 
array1.length = 0; 
alert(array2); //返回为空

  比较好的做法,除了用for去循环,还可以用slice()方法或者concat()方法对数组进行操作

var arr1 = [1, 2, 3];
var arr2 = arr1.slice(0);
arr2.splice(3,0,4,5);
console.log(arr2);//1,2,3,4,5
console.log(arr1);//1,2,3

  

var arr1 = [1, 2, 3];
var arr2 = arr1.concat([]);
arr2.splice(3,0,4,5);
console.log(arr2);//1,2,3,4,5
console.log(arr1);//1,2,3

  因为slice和concat返回的都是一个新数组,所以可以使用这两个方法进行复制