JS复制数组

2019-07-05  本文已影响0人  Lia代码猪崽

'='不能复制数组

如果使用=来赋值,不是复制,而是相当于把新数组的指针与指向旧数组所指向的数据,如果新数组变了,旧数组也会一起改变:

const arr1 = [1, 2, 3, 4]
const arr2 = arr1
console.log(arr2)  //  [1, 2, 3, 4]

arr2.push(5)
console.log(arr2)  // [1, 2, 3, 4, 5]
console.log(arr1)  // [1, 2, 3, 4, 5]

复制数组

1.使用concat
concat() 用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本

const arr1 = [1, 2, 3, 4]
const arr2 = arr1.concat()
console.log(arr2)  //  [1, 2, 3, 4]

arr2.push(5)
console.log(arr2)  // [1, 2, 3, 4]
console.log(arr1)  // [1, 2, 3, 4, 5]

2.使用ES6 中的扩展运算符...

const arr1 = [1, 2, 3, 4]
// 写法一
const  arr2 = [...arr1]
// 写法二
const [...arr2] = arr1
console.log(arr2)  //  [1, 2, 3, 4]

arr2.push(5)
console.log(arr2)  // [1, 2, 3, 4, 5]
console.log(arr1)  // [1, 2, 3, 4]
上一篇下一篇

猜你喜欢

热点阅读