JavaScript での浅いクローン作成: 配列複製テクニックのパフォーマンスの比較
JavaScript で配列を扱う場合、コピーまたは重複します。このタスクによく使用される 2 つの方法は、スライス方法と従来の for ループです。しかし、どちらが速いのでしょうか?
挑戦者: スライスと For ループ
スライス メソッドは標準の Array オブジェクトの一部であり、配列の浅いコピーを作成します。構造と要素は保持しますが、オブジェクト参照のディープコピーは行いません。
一方、for ループは単純なアプローチを使用して反復処理を行います。
ベンチマークと最適化
広範なベンチマークによると、スライス方式がブラウザーで最も高速なオプションであることが証明されています。 ChromeやFirefoxなど。これは、slice などの組み込みメソッドに実装されたブラウザの最適化によるものです。
ただし、これらの最適化を備えていない他のブラウザの場合は、for ループ メソッドの方が高速である可能性があります。これは、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);
結論
どのメソッドを使用するかの選択JavaScript での配列の複製は、対象となるブラウザーによって異なります。スライス メソッドの最適化を備えたブラウザの場合、これがより高速なオプションです。他の場合には、for ループの方がパフォーマンスが向上する可能性があります。
以上がスライスと For ループ: JavaScript での浅い配列のクローン作成はどちらが速いですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。