[英]array.push adding to wrong array
我已经创建2个阵列, answeredArr
和correctArr
; 保留游戏信息。 游戏第一次完成时,我将正确的答案数组复制到答案数组:
answeredArr = correctArr;
此后,每次我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;
您将对AnswerArr的引用设置为与对correctArr的引用相同。 此后,对一个数组的任何操作都将影响另一个数组,因为它们指向同一数组。
您需要克隆数组,而不是复制引用。 一个简单的方法是:
var answeredArr = correctArr.slice(0);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.