我需要复制和操作数组变量,但出于某种原因,当我将值推入新创建的数组时,它会将值推送到原始数组中。
function testing (point) {
var newArray = currentChain;
newArray.push(point);
}
在这种情况下,点被添加到currentChain
变量中。
请注意,我无法将currentChain
设置为newArray
,并且脚本中没有其他变量名为newArray
。为什么会这样表现?
答案 0 :(得分:2)
要解决此问题,您需要克隆阵列。例如,使用slice
方法:
var newArray = currentChain.slice();
这是因为您的newArray
是指向currentChain
数组的指针。
答案 1 :(得分:1)
因为newArray
和currentChain
共享相同的引用,所以更改一个也会影响另一个引用。
使用newArray = []
来避免这种情况,因为数组的命名意味着这样。