Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript array.push添加到错误的数组_Javascript_Createjs - Fatal编程技术网

Javascript array.push添加到错误的数组

Javascript array.push添加到错误的数组,javascript,createjs,Javascript,Createjs,我已经创建了两个数组,answeredArr和correctArr;保存游戏的信息。游戏第一次完成时,我将正确答案数组复制到答案数组: answeredArr = correctArr; 在这一点之后,每次我回答arr.push(变量),correctArr也会更新 代码太多了,所以我不愿意全部发布。数组是一个对象。当您执行objB=objA时,objA和objB指向内存中的同一位置,换句话说,它们在不同的名称下是相同的东西 幸运的是,Array有一个内置的方法,使克隆变得容易 var a1

我已经创建了两个数组,
answeredArr
correctArr
;保存游戏的信息。游戏第一次完成时,我将正确答案数组复制到答案数组:

answeredArr = correctArr;
在这一点之后,每次我
回答arr.push(变量)
correctArr
也会更新

代码太多了,所以我不愿意全部发布。

数组是一个对象。当您执行
objB=objA
时,
objA
objB
指向内存中的同一位置,换句话说,它们在不同的名称下是相同的东西

幸运的是,Array有一个内置的方法,使克隆变得容易

var a1 = [], a2;
a2 = a1;         // a1 === a2
a2 = a1.slice(); // a1 !== a2, but identical.

Javascript中的数组是通过引用而不是值来处理的,因此在执行此操作时:

answeredArr = correctArr;
将对answeredArr的引用设置为与对correctArr的引用相同。此后,其中一个上的任何操作都会影响另一个,因为它们指向同一个数组

您需要克隆阵列,而不是复制引用。一个简单的方法是:

var answeredArr = correctArr.slice(0);