我创建了 2 个数组,answeredArr
并且correctArr
;保存游戏信息。游戏第一次完成时,我将正确答案数组复制到答案数组:
answeredArr = correctArr;
在此之后,每次 I answeredArr.push(variable);
,correctArr
也会更新。
代码很多,所以我不愿意全部发布。
我创建了 2 个数组,answeredArr
并且correctArr
;保存游戏信息。游戏第一次完成时,我将正确答案数组复制到答案数组:
answeredArr = correctArr;
在此之后,每次 I answeredArr.push(variable);
,correctArr
也会更新。
代码很多,所以我不愿意全部发布。
数组是一个对象。当您这样做时objB = objA
,objA
并objB
指向内存中的同一位置,换句话说,它们是不同名称的同一事物。
幸运的是,Array有一个内置方法Array.prototype.slice
,可以轻松进行克隆。
var a1 = [], a2;
a2 = a1; // a1 === a2
a2 = a1.slice(); // a1 !== a2, but identical.
Javascript 中的数组是通过引用而不是值来处理的,所以当你这样做时:
answeredArr = correctArr;
您将对answeredArr 的引用设置为与对correctArr 的引用相同。此后,对一个的任何操作也会影响另一个,因为它们指向同一个数组。
您需要克隆数组,而不是复制引用。一个简单的方法是:
var answeredArr = correctArr.slice(0);