首頁  >  文章  >  web前端  >  JavaScript 中的陣列與物件:檢索具有長數字 ID 的單一物件時哪個更快?

JavaScript 中的陣列與物件:檢索具有長數字 ID 的單一物件時哪個更快?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-27 11:43:30955瀏覽

  Arrays vs. Objects in JavaScript: Which is Faster for Retrieving a Single Object with a Long Numerical ID?

JavaScript 中的數組與對象效率:檢索具有長數字ID 的單個對象

問題陳述:

當有效地儲存大量物件並需要透過唯一的長數字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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn