克隆数组的几种方式?

大致总结了五种方法,一起看看吧~~·

(一)slice方法

let arr = [1,2,3,4]
let arr1= arr.slice()  //或者是   let arr1= arr.slice(0)
arr[0] = 6
console.log(arr)   // [6, 2, 3, 4]
console.log(arr1)  // [1, 2, 3, 4]

(二)自己封装一个myClone函数

Array.prototype.myClone = function(){
    let newArr=[];
    for(let i=0;i<this.length;i++) {
        newArr.push(this[i]);
    }
    return newArr;
}
let arr = ['aaa','bbb','ccc','wwwww','ddd']
let arr2 = arr.myClone()
console.log(arr)   //["aaa", "bbb", "ccc", "wwwww", "ddd"]
console.log(arr2)  //["aaa", "bbb", "ccc", "wwwww", "ddd"]
console.log( arr2 === arr )   //false

(三)展开运算符 [...arr]  

const arr1 = [1, 2];
const arr2 = [...a1];
arr1[0] = 6
console.log(arr1) // [6, 2]
console.log(arr2) // [1, 2]

(四)concat方法

var  arr1 = [1,2,3]
var  arr2 = arr1.concat()   //或者是  var  arr2 = arr1.concat([])
arr1[0] = 6
console.log(arr1)  //[6,1,2]
console.log(arr2)  //[1,2,3]

(五)Object.assign()

let arr = [1,2,3,4]
let arr1 = []
Object.assign(arr1,arr)
arr[0] = 6
console.log(arr)  // [6, 2, 3, 4] 
console.log(arr1) // [1, 2, 3, 4]   

嘻嘻嘻嘻嘻~~~  

  

  

猜你喜欢

转载自www.cnblogs.com/zero18/p/10133967.html