[英]JavaScript create use backup array
只需看一下代碼,您就會明白我的意思:
var aBackup = [3, 4]; // backup array
var a = aBackup; // array to work with is set to backup array
a[0]--; // working with array..
a = aBackup; // array o work with will be rested
console.log(a); // returns [2, 4] but should return [3, 4]
console.log(aBackup); // returns [2, 4] too but should return [3, 4] too
您需要制作數組的真實副本,而不僅僅是使用引用:
var aBackup = [3, 4]; // backup array
var a = aBackup.slice(0); // "clones" the current state of aBackup into a
a[0]--; // working with array..
a = aBackup.slice(0); // "clones" the current state of aBackup into a
console.log(a); // returns [3, 4]
console.log(aBackup); // returns [3, 4]
有關slice
-方法的文檔,請參見MDN
javascript不是將指針用於數組嗎? 應該var a = aBackup;
做副本嗎? 否則結果對我來說似乎很正常...
數組是對象的引用類型,因此對其進行的更改將更改其指向的基礎值,a和aBackup將指向相同的值,對a的更改也將更改aBackup。
這是因為執行此操作時,您不是在復制數組,而是實際上是對原始數組的引用。
var a IS aBackup; // if you will
您需要做的就是克隆備份陣列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.