对数组副本执行unshift方法

时间:2019-03-19 12:38:24

标签: javascript

我想取消移动阵列的副本,但是原始阵列也会修改。为什么会这样?

var array1 = [1, 2, 3]
var array2 = array1

array2.unshift(4, 5)

console.log(array1)
console.log(array2)

2 个答案:

答案 0 :(得分:2)

尝试使用Array.from()

var array1 = [1, 2, 3]
var array2 = Array.from(array1)

array2.unshift(4, 5)

console.log(array1)
console.log(array2)

答案 1 :(得分:2)

使用扩展运算符( ... )创建第二个数组。它将创建一个具有新参考的新数组。然后执行您的任务。

var array1 = [1, 2, 3];
var array2 = [...array1];

array2.unshift(4, 5);

console.log(array1);
console.log(array2);