常用复制数组的几种方法
直接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返回的都是一个新数组,所以可以使用这两个方法进行复制
时间: 2024-10-16 12:55:10