[英]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.