数组的浅复制与深复制
浅复制:
Array.clone = function(arr) { const ans = []; for(let i = 0; i < arr.length; i++) { ans[i] = arr[i]; } return(ans); } let a = [1,2,3,[4,5,6],[7,8,9]], b = Array.clone(a); console.log(a === b); //false console.log(a[3]); //[4,5,6] console.log(a[3] === b[3]); //true console.log(a[4] === b[4]); //true
深复制:
Array.clone = function(arr) { const ans = []; for(let i = 0; i < arr.length; i++) { if(arr[i].length) { ans[i] = Array.clone(arr[i]); } else { ans[i] = arr[i]; } } return(ans); } let a = [1,2,3,[4,5,6],[7,8,9]], b = Array.clone(a); console.log(a === b); //false console.log(a[3]); //[4,5,6] console.log(a[3] === b[3]); //false console.log(a[4] === b[4]); //false
**
slice()
方法会浅复制(shallow copy)数组的一部分到一个新的数组,并返回这个新数组。
这个方法会返回一个新数组