array.prush添加到错误的数组

array.push adding to wrong array

本文关键字:数组 错误 prush 添加 array      更新时间:2023-09-26

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

answeredArr = correctArr;

在这一点之后,每次I answeredArr.push(variable);correctArr也被更新。

这里有很多代码,所以我不愿意全部发布。

数组对象。当你做objB = objA时,objAobjB指向内存中的同一个位置,换句话说,它们是不同名称下的同一事物。

幸运的是,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);