在遊戲陪玩原始碼開發中,兩種清空陣列的方式

雲豹科技程式設計師發表於2021-12-14
如果你在遊戲陪玩原始碼中定義了一個陣列,然後你想清空它。 通常,你會這樣做:
// 定義一個陣列
var list = [1, 2, 3, 4];
function empty() {
    //清空陣列
    list = [];
}
但是,這有一個效率更高的方法來清空遊戲陪玩原始碼中的陣列。 你可以這樣寫:
var list = [1, 2, 3, 4];
function empty() {
    //empty your array
    list.length = 0;
}
empty();
  • list = [] 將一個新的陣列的引用賦值給變數,其他引用並不受影響。這意味著遊戲陪玩原始碼以前陣列的內容被引用的話將依舊存在於記憶體中,這將導致記憶體洩漏。
  • list.length = 0 刪除陣列裡的所有內容,也將影響到其他引用。
然而,如果你複製了一個陣列(A 和 Copy-A),如果你用list.length = 0清空了它的內容,複製的陣列也會清空它的內容。
考慮一下將會輸出什麼:
var foo = [1,2,3];
var bar = [1,2,3];
var foo2 = foo;
var bar2 = bar;
foo = [];
bar.length = 0;
console.log(foo, bar, foo2, bar2);
//[] [] [1, 2, 3] []
本文轉載自網路,轉載僅為分享乾貨知識,如有侵權歡迎聯絡雲豹科技進行刪除處理 原文連結:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996194/viewspace-2847722/,如需轉載,請註明出處,否則將追究法律責任。

相關文章