JavaScript拷贝数组

1.使用Array.slice方法

1
const numbers = [1, 2, 3, 4, 5]
2
3
const copy = numbers.slice()
4
copy.push(6); // 添加新项以证明不会修改原始数组
5
6
console.log(copy);
7
console.log(numbers);
8
9
// 输出
10
// [1, 2, 3, 4, 5, 6]
11
// [1, 2, 3, 4, 5]

2. 使用Array.map方法

1
const numbers = [1, 2, 3, 4, 5]
2
3
const copy = numbers.map( num => num )
4
copy.push(6); // 添加新项以证明不会修改原始数组
5
6
console.log(copy);
7
console.log(numbers);
8
9
// 输出
10
// [1, 2, 3, 4, 5, 6]
11
// [1, 2, 3, 4, 5]

3.使用Array.from 方法

1
const numbers = [1, 2, 3, 4, 5];
2
3
const copy = Array.from(new Set(numbers));
4
copy.push(6); // 添加新项以证明不会修改原始数组
5
6
console.log(copy);
7
console.log(numbers);
8
9
// 输出
10
// [1, 2, 3, 4, 5, 6]
11
// [1, 2, 3, 4, 5]

4.使用展开操作符

1
const numbers = [1, 2, 3, 4, 5];
2
3
const copy = [...numbers];
4
copy.push(6); // 添加新项以证明不会修改原始数组
5
6
console.log(copy);
7
console.log(numbers);
8
9
// 输出 
10
// [1, 2, 3, 4, 5, 6]
11
// [1, 2, 3, 4, 5]

5.使用解构

1
const numbers = [1, 2, 3, 4, 5];
2
3
const [...copy] = numbers;
4
copy.push(6); // 添加新项以证明不会修改原始数组
5
6
console.log(copy);
7
console.log(numbers);
8
9
// 输出
10
// [1, 2, 3, 4, 5, 6]
11
// [1, 2, 3, 4, 5]

6. 使用 Array.concat 方法

1
const numbers = [1, 2, 3, 4, 5];
2
3
const copy = numbers.concat();
4
copy.push(6); // 添加新项以证明不会修改原始数组
5
6
console.log(copy);
7
console.log(numbers);
8
9
// 输出
10
// [1, 2, 3, 4, 5, 6]
11
// [1, 2, 3, 4, 5]

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!