2013-07-09 28 views
-1

我創建了2個數組,answeredArrcorrectArr;爲遊戲保存信息。第一次遊戲完成了我正確答案陣列複製到陣列的答案:array.push添加到錯誤的數組

answeredArr = correctArr; 

這一點之後,我每次answeredArr.push(variable);correctArr更新以及時間。

有很多代碼,所以我不願意發佈這一切。

回答

4

An Array is Object。當你做objB = objA時,objAobjB指向內存中的同一個地方,換句話說,它們在不同的名字下是相同的東西。

幸運的是,數組有一個內置的方法Array.prototype.slice,它使克隆變得容易。

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

陣列在Javascript中被引用,而不是值的處理,所以,當你這樣做:

answeredArr = correctArr; 

您設置的參考answeredArr是一樣的refrence到correctArr。此後,任何一個操作都會影響另一個操作,因爲它們指向相同的數組。

您需要複製數組,而不是複製引用。一個簡單的方法是:

var answeredArr = correctArr.slice(0);