一个数组a等于另一个数组,但是a数组改变后,另一个数组也跟着改变解决办法

问题: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肯定不会改变

     

猜你喜欢

转载自www.cnblogs.com/caoxiaokang/p/9179652.html