js拷贝数组的方法

slice

返回一个新的数组对象,这一对象是一个由 beginend(不包括end)决定的原数组的浅拷贝。原始数组不会被改变。且如果 end 被省略,则slice 会一直提取到原数组末尾。

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

concat

用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。

let arr = [1,2,3]
let arr1 = arr.concat()
arr1[0] = 2
console.log(arr)
console.log(arr1)
// [1,2,3]
// [2,2,3]
1
2
3
4
5
6
7

form

从一个类似数组或可迭代对象中创建一个新的数组实例。

let arr = [1,2,3]
let arr1 = Array.from(arr)
arr1[0] = 2
console.log(arr)
console.log(arr1)
// [1,2,3]
// [2,2,3]
1
2
3
4
5
6
7

...(扩展运算符)

let arr = [1,2,3]
let arr1 = [...arr]
arr1[0] = 2
console.log(arr)
console.log(arr1)
// [1,2,3]
// [2,2,3]
1
2
3
4
5
6
7
上次更新: 4/21/2019, 12:39:26 PM