JavaScript配列をバッチで作成する方法はたくさんありますが、そのパフォーマンスを測定するために、さまざまな方法を使用して長さ 100000 の配列を作成しました。今日はこれを共有します。 js に基づいてバッチを作成します 配列メソッドを見てみましょう
JavaScript には配列をバッチで作成するメソッドが多数あり、そのパフォーマンスを測定するために、さまざまなメソッドを使用して長さ 100000 の配列を作成しました。キーと値は等しいです。同時に、配列の作成にかかる時間を測定するために、次の 関数 を定義しました:
function t(fn) { var start = Date.now(); fn.call(this); var end = Date.now(); return (end - start) + 'ms'; }
以下は、配列を作成するためによく使用されるいくつかの方法とそれにかかる時間を示します:
join と Split を使用する
このメソッドは map 操作に多くの時間を費やしますが、マップを削除した後は、apply
A { length: 100000 } pseudo を使用するだけで 2 ミリ秒しかかかりません。配列、ノードは、ここで使用されています List
と引数はどちらも疑似配列 (array のような
object) ですが、本当の意味での配列ではありませんが、「lengthattribute」を持ちます。 indexattribute" オブジェクト は配列のメソッドを直接使用できませんが、apply と call はそのような疑似配列を受け入れることができます。私たちが通常使用する Array.prototype.slice(arguments) はこの原則に基づいています。 ここでは、長さ 100000 の疑似配列が Array 関数に渡され、長さ 100000 の配列が構築され、map を使用して値が割り当てられます。一部の学生は、Array(100000) を使用して配列を生成しないのではないかと疑問に思うかもしれません。これは、Array(100000) によって生成された配列の各値が未定義であり、マップを通過できないためです。 Array.from()を使用します
これはES6の新しいメソッドで、擬似配列を直接配列に変換することができます
擬似配列を配列に置き換えると、速度が大幅に低下します。
Array.fill()を使用します
まずArray.fill()で配列を埋めてから、マップを通じて値を1つずつ割り当てます
forループを使用します
その時はショックで、0が減っていないかチェックし続けて、不満を表明してプッシュで試してみたかったのですが
プッシュもとても早いことが分かりました。 .比較した結果、これが最も独創的な for ループであることがわかりました。直接代入が最も速く、他の方法はすべてほぼ同じ速度です。しかし、for ループを書くのは本当に面倒で、1 文でできることを実行するには 3 文かかります。
そのため、パフォーマンスに対する大きな要件がない場合 (結局のところ、実際の開発では 100,000 ほど大きい配列は存在しません)、apply と Array.from を使用するのが最も便利です。
以上がJavaScriptで配列を一括作成する方法を詳しく紹介(画像)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。