繁体   English   中英

array.push添加到错误的数组

[英]array.push adding to wrong array

我已经创建2个阵列, answeredArrcorrectArr ; 保留游戏信息。 游戏第一次完成时,我将正确的答案数组复制到答案数组:

answeredArr = correctArr;

此后,每次我answeredArr.push(variable); correctArr也将更新。

有很多代码,所以我不愿意发布所有代码。

数组是一个对象 当您执行objB = objAobjAobjB指向内存中的相同位置,换句话说,它们是同一事物,只是名称不同。

幸运的是, Array具有内置方法Array.prototype.slice ,可轻松进行克隆。

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

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

answeredArr = correctArr;

您将对AnswerArr的引用设置为与对correctArr的引用相同。 此后,对一个数组的任何操作都将影响另一个数组,因为它们指向同一数组。

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

var answeredArr = correctArr.slice(0);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM