JavaScript には配列をバッチで作成するメソッドが多数あり、そのパフォーマンスを測定するために、さまざまなメソッドを使用して長さ 100000 の配列を作成しました。キーと値は等しいです。同時に、配列の作成にかかる時間を測定する次の関数を定義しました:
function t(fn) { var start = Date.now(); fn.call(this); var end = Date.now(); return (end - start) + 'ms'; }
以下は、配列の作成によく使用されるいくつかの方法とその所要時間を示します:
このメソッドは map 操作に多くの時間を費やしますが、マップを削除した後は 2 ミリ秒しかかかりません。これらはすべて疑似配列 (配列のようなオブジェクト) ですが、本当の意味では配列ではありません。 「長さ属性」と「インデックス属性」を持つオブジェクトでは、配列のメソッドを直接使用したり、適用したり呼び出したりすることはできませんが、この種の疑似配列は許容されます。私たちが通常使用する Array.prototype.slice(arguments) はこの原則に基づいています。
ここでは、長さ 100000 の疑似配列が Array 関数に渡され、長さ 100000 の配列が構築され、map を使用して値が割り当てられます。一部の学生は、Array(100000) を使用して配列を生成しないのではないかと疑問に思うかもしれません。これは、Array(100000) によって生成された配列の各値が未定義であり、マップを通過できないためです。
Array.from()を使用しますこれはES6の新しいメソッドで、擬似配列を配列に直接変換できます 擬似配列を配列に置き換えると、速度が大幅に低下します。まずArray.fill()で配列を埋めてから、マップを通して値を1つずつ割り当てます
forループを使用しますその時はびっくりしたと言い、0を見逃していないかチェックし続けました。 不満を表明し、pushで試してみたいと思いました
そのため、パフォーマンスに対する大きな要件がない場合 (結局のところ、実際の開発では 100,000 ほど大きい配列は存在しません)、apply と Array.from を使用するのが最も便利です。
以上がJavaScriptを使用して配列をバッチで作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。