今回は、いくつかの JS 配列トラバーサル メソッドの概要と比較について説明します。notes とは何ですか? いくつかの JS 配列トラバーサル メソッドの概要と比較について、実際のケースを見てみましょう。
はじめに
この記事は、いくつかの JS 変数交換メソッドとパフォーマンス分析の比較に関する前の記事と同じシリーズに属しており、引き続き JS で一般的に使用されるいくつかの配列トラバーサル メソッドとそれぞれのパフォーマンスの比較を分析します。
Start by
前回、いくつかの一般的な JS 変数交換メソッドとそれぞれのパフォーマンスを分析した結果、このメソッドは非常に優れていると感じたので、コアロジックを抽出してテンプレートにカプセル化し、拡張することを計画しましたこの記事はシリーズの 2 番目であり、JS 配列トラバーサルのいくつかのメソッドの分析と比較ですJS 配列トラバーサル、基本的には、for、forin、foreach、forof、マップなどのメソッド。ここでは、この記事の分析とパフォーマンス分析と比較で使用されるいくつかの配列トラバーサルメソッドを示します最初のメソッド: 通常の for ループ
コードは次のとおりです:for(j = 0; j < arr.length; j++) { }
2 番目のタイプ: for ループの最適化されたバージョン
コードは次のとおりです:for(j = 0,len=arr.length; j < len; j++) { }
3番目のタイプ: forループの弱体化バージョン
コードは次のとおりです:for(j = 0; arr[j]!=null; j++) { }
arr.forEach(function(e){ });
コードは次のとおりです。
Array.prototype.forEach.call(arr,function(el){ });
実際のパフォーマンスは通常の foreach よりも劣ります
6 番目のタイプ: forin ループ
コードは次のとおりです:for(j in arr) { }
7 番目のメソッド: マップトラバーサル
コードは次のとおりです:arr.map(function(n){ });
8 番目のタイプ: forof traversal (ES6 のサポートが必要)
コードは次のとおりです:for(let value of arr) { });
基本的に、上記のメソッドを 1 つずつ比較分析しました。描画されるのは次のとおりです:
普通の for ループだけが最もエレガントです
(PS: 上記のコードはすべて単なる空のループであり、内部実行コードのリサイクルはなく、それぞれの時間の分析のみです)ループ)
パフォーマンス比較のスクリーンショット分析結果 1
以下のスクリーンショットのデータは、Chrome (es6 をサポート) で 100 回実行した後に得られた結論です (毎回 10 回実行、合計10 サイクルの分析結果が得られます)forin ループが最も遅いことがわかります。最適化された通常のforループが最速です 分析結果2 以下のスクリーンショットデータは、chrome(es6対応)で1000回実行(1回100回、計10回ループし、得られた分析結果)した結果です。 ) この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。 推奨読書:
以上がJS のいくつかの配列トラバーサル メソッドの概要と比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。