問題陳述:
當有效地儲存大量物件並需要透過唯一的長數字ID 檢索它們時,確定最佳資料結構至關重要:陣列還是物件。
陣列選項:
<code class="javascript">var a = [{id: 29938, name: 'name1'}, {id: 32994, name: 'name1'}];</code>
要在陣列中定位對象,需要線性搜尋:
<code class="javascript">function getObject(id) { for (var i=0; i < a.length; i++) { if (a[i].id == id) return a[i]; } }</code>
物件選項:
<code class="javascript">var a = {}; a[29938] = {id: 29938, name: 'name1'}; a[32994] = {id: 32994, name: 'name1'};</code>
對於對象,根據用作鍵的ID直接檢索:
<code class="javascript">function getObject(id) { return a[id]; }</code>
分析:
一般來說,數組比物件稍快一些檢索單一元素,尤其是大型數組。這是因為物件具有鍵值對,與陣列的簡單索引相比,需要額外的查找開銷。
效能測試結果(2017):
A 效能2017 年進行的測試表明,在檢索單一物件時,陣列明顯比空數組和物件更快。
排序:
排序效能取決於所使用的排序演算法和元素的數量。雖然使用 Array.sort() 等內建方法可以比物件更有效地對陣列進行排序,但對於較小的資料集,差異可能並不顯著。
結論:
如果主要操作是根據 ID 檢索單個對象,則數組通常比對象更有效,尤其是對於大量對象。然而,如果排序是一個頻繁的需求,那麼資料結構的選擇可能需要進一步的測試和考慮。
以上是JavaScript 中的陣列與物件:檢索具有長數字 ID 的單一物件時哪個更快?的詳細內容。更多資訊請關注PHP中文網其他相關文章!