簡體   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