在JavaScript 中複製陣列:比較切片和循環的速度
在JavaScript 中,當面臨複製數組的任務時,會遇到兩種常見的方法:切片方法和for迴圈。雖然這兩種方法都實現了淺複製,即複製物件引用而不是物件本身,但它們的速度效能可能會有所不同。
效能基準
大量基準測試得出的結論是,最佳克隆方法取決於所使用的瀏覽器。對於 Blink 瀏覽器(例如 Chrome、Edge),slice() 方法佔據主導地位,其效能是 for 迴圈的 2.4 倍。然而,在非 Blink 瀏覽器中,for 迴圈是速度最快的選項。
效能腳本範例
為了說明這些差異,請考慮以下效能腳本您可以在瀏覽器的控制台中執行:
對於循環:
n = 1000*1000; start = + new Date(); a = Array(n); b = Array(n); i = a.length; while(i--) b[i] = a[i]; console.log(new Date() - start);
切片:
n = 1000*1000; start = + new Date(); a = Array(n); b = a.slice(); console.log(new Date() - start);
請注意,這些腳本專注於克隆數組物件本身。數組的內容(可能包含物件引用)是透過引用複製的,而不是深度克隆。
以上是Slice 與 For 迴圈:哪種 JavaScript 陣列複製方法比較快?的詳細內容。更多資訊請關注PHP中文網其他相關文章!