问题:var arr = [1,2,3,4,5,null];
var arr2 = arr;
arr2.splice(1,3); //2,3,4
arr; //2,3,4
两个数组同时指向的都是数组[1,2,3,4,5,null],所以当其中一个进行操作修改后,另一个数组也会跟着变化
解决办法:
一:循环数组arr,把数组中的值分别赋予arr2
var arr = [1,2,3,4,5,'undefined',null],arr2 = [];
for(var i = 0;i<arr.length){
arr2.push(arr[i]);
}
适合少量数组操作,如果数组数据太过庞大,则会造成延迟
二:Object.assign
var arr = [1,2,3,4,5,'undefined',null];
var arr2 = Object.assign([],arr);
即:arr2复制整个数组,arr2操作复制的arr数组,arr肯定不会改变