JavaScript 中數組與物件的效率
簡介
在開發人員經常儲存數組或物件中的資料。每種方法都有明顯的優點和缺點,特別是在考慮效率和透過 ID 檢索特定物件的需要時。本文研究了這些選擇對效能的影響,考慮了涉及檢索單一物件和對大型資料集進行排序的場景。
單一物件擷取的陣列與物件
陣列方法:
陣列通常以數字索引,根據索引🎜>
[ { id: 29938, name: 'name1' }, { id: 32994, name: 'name2' } ]
function getObject(id) { for (var i = 0; i < a.length; i++) { if (a[i].id == id) { return a[i]; } } }
對象方法:
var a = {}; a[29938] = { id: 29938, name: 'name1' }; a[32994] = { id: 32994, name: 'name2' }; function getObject(id) { return a[id]; }
性能比較:
基準測試一致表明,對於單個對象,對象的性能優於數組物件檢索。這是因為物件可以使用鍵直接存取值,從而無需透過數組進行迭代。
排序注意事項陣列方法:
對陣列進行排序需要基於特定鍵比較和重新排列元素的演算法.這可能是計算密集型過程,尤其是對於大型數組。
物件方法:雖然物件沒有固有的排序功能,但它們可以轉換為陣列並使用 .sort() 等 JavaScript 方法進行排序。然而,這種轉換會帶來額外的效能開銷。
結論總之,與陣列相比,物件通常在基於 ID 檢索單一物件時提供更高的效率。對於物件檢索頻繁但排序操作很少的場景,物件是首選。但是,如果頻繁需要排序,則應仔細考慮將物件轉換為陣列的效能影響。以上是在 JavaScript 中透過 ID 檢索單一物件哪個更有效:陣列還是物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!