我认为这只是我不了解 JavaScript 工作原理的一部分。假设我有一个数组,调用它arr1
,里面有 6 个整数, [1,2,3,4,5,6]
。如果我创建一个新数组:
var arr2 = arr1
(为了保持不变的副本arr1
),当我更改时arr1
,更改会反映在arr2
.
基本上,我在操纵arr1
. 出于测试目的,我希望有一个未更改的副本,arr1
这样当我完成后,我可以在我的网页上将它们都控制台记录下来并查看它们之间的差异。但同样,当我在 中进行更改时arr1
,该更改会反映在arr2
.
谁能解释为什么会发生这种情况以及可能的解决方法?我对为什么会发生这种情况比如何解决它更感兴趣。
一种方法是创建arr2
一个单独的数组,并使用 for 循环来填充它arr1
的数据
for(int i = 0; i < arr1.length; i++) arr2[i] = arr1[i]
但是,如果阵列很大,那可能会很昂贵。任何帮助表示赞赏。