JavaScript での配列の複製速度の比較: スライスと For ループ
JavaScript では、複製を作成する一般的な方法が 2 つあります。配列のスライス メソッドと for ループ。それぞれの速度を徹底的に分析するために、さまざまな複製方法のベンチマークが行われ、いくつかの驚くべき結果が明らかになりました。
速度測定
異なるブラウザ間で実施されたベンチマークでは、次のことが示されました。配列を複製する最速の方法は、使用されているブラウザ エンジンによって異なります。 Blink (Chrome、Edge) のようなブラウザでは、通常、slice メソッドの方が for ループよりもパフォーマンスが高く、concat の方がわずかに遅くなります。
ただし、古いバージョンの Firefox など、slice と concat の実装があまり最適化されていないブラウザの場合は、 Internet Explorer では、while ループ メソッドが断然勝者として浮上します。
例コード
ブラウザのコンソールでメソッドのベンチマークを自分で行うために使用できるサンプル スクリプトを次に示します。
// While loop method var n = 1000 * 1000; var start = +new Date(); var a = Array(n); var b = Array(n); var i = a.length; while (i--) b[i] = a[i]; console.log(new Date() - start); // Slice method var n = 1000 * 1000; var start = +new Date(); var a = Array(n); var b = a.slice(); console.log(new Date() - start);
考慮事項
スライスまたは for ループ メソッドは配列自体を複製しますが、配列の内容は参照によってコピーされ、深くコピーされるわけではないことに注意することが重要です。クローン化されました。これは、どちらかの配列への変更が両方に反映されることを意味します。
それでは、どちらの方法を選択すればよいでしょうか?最新のブラウザでは、スライス方式が最適なオプションです。ただし、最適化されていない JavaScript 実装を備えた古いブラウザをターゲットにしている場合は、for ループ メソッドの方がパフォーマンスが向上する可能性があります。
以上がJavaScript の配列複製方法 (スライスと For ループ) はどれが最も速いですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。