ホームページ > ウェブフロントエンド > jsチュートリアル > スライスと For ループ: JavaScript 配列の複製方法はどちらが速いですか?

スライスと For ループ: JavaScript 配列の複製方法はどちらが速いですか?

Patricia Arquette
リリース: 2024-12-20 01:08:10
オリジナル
402 人が閲覧しました

Slice vs. For Loop: Which JavaScript Array Duplication Method is Faster?

JavaScript での配列の複製: 速度に関するスライスとループの比較

JavaScript では、配列を複製するタスクに直面すると、次のような問題が発生します。一般的な 2 つのアプローチ、スライス メソッドと 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);
ログイン後にコピー

これらのスクリプトは、配列オブジェクト自体のクローン作成に重点を置いていることに注意してください。オブジェクト参照を含む可能性のある配列の内容は、参照によってコピーされ、深く複製されることはありません。

以上がスライスと For ループ: JavaScript 配列の複製方法はどちらが速いですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート