有时候需要把某些数组进行拷贝,在做功能性的处理,有时候需要浅拷贝,有时候需要深拷贝,
我常用的是需要保留源数据不被污染的,用到的最多的方法
var arr = [1,2,3,4,5,6];
var newArr = JSON.parse(JSON.stringify(arr));
是个万金油
在这总结一下能够进行数组拷贝,并且不污染源数据的方法
1、Array.slice
const number = [1, 2, 3, 4, 5];
const newNumber = number.slice();
newNumber.push(6);//添加新项证明不会改变原数组
console.log(number);//[1,2,3,4,5]
console.log(newNumber);//[1,2,3,4,5,6]
2、Array.map
const number = [1, 2, 3, 4, 5];
//map有返回值,声明变量接收返回值
const newNumber = number.map(num => num);
newNumber.push(6);//添加新项证明不会改变原数组
console.log(number);//[1,2,3,4,5]
console.log(newNumber);//[1,2,3,4,5,6]
3、Array.from (注意:该方法不能用在原数组里有重复项,会被去重)