ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptを使用して配列をバッチで作成する方法

JavaScriptを使用して配列をバッチで作成する方法

迷茫
迷茫オリジナル
2017-03-26 15:25:122279ブラウズ

JavaScript には配列をバッチで作成するメソッドが多数あり、そのパフォーマンスを測定するために、さまざまなメソッドを使用して長さ 100000 の配列を作成しました。キーと値は等しいです。同時に、配列の作成にかかる時間を測定する次の関数を定義しました:

function t(fn) {
     var start = Date.now();
     fn.call(this);
     var end = Date.now();
     return (end - start) + 'ms';
 }

以下は、配列の作成によく使用されるいくつかの方法とその所要時間を示します:

join と Split を使用する

このメソッドは map 操作に多くの時間を費やしますが、マップを削除した後は 2 ミリ秒しかかかりません。これらはすべて疑似配列 (配列のようなオブジェクト) ですが、本当の意味では配列ではありません。 「長さ属性」と「インデックス属性」を持つオブジェクトでは、配列のメソッドを直接使用したり、適用したり呼び出したりすることはできませんが、この種の疑似配列は許容されます。私たちが通常使用する Array.prototype.slice(arguments) はこの原則に基づいています。

ここでは、長さ 100000 の疑似配列が Array 関数に渡され、長さ 100000 の配列が構築され、map を使用して値が割り当てられます。一部の学生は、Array(100000) を使用して配列を生成しないのではないかと疑問に思うかもしれません。これは、Array(100000) によって生成された配列の各値が未定義であり、マップを通過できないためです。

Array.from()を使用します

これはES6の新しいメソッドで、擬似配列を配列に直接変換できます

擬似配列を配列に置き換えると、速度が大幅に低下します。

Array.fill()を使用します

まずArray.fill()で配列を埋めてから、マップを通して値を1つずつ割り当てます

forループを使用します

その時はびっくりしたと言い、0を見逃していないかチェックし続けました。 不満を表明し、pushで試してみたいと思いました

比較した結果、オリジナルのforループ直接代入が判明しましたが最も速く、他のいくつかの方法もほぼ同じです。 しかし、for ループを書くのは本当に面倒で、1 文でできることを実行するには 3 文かかります。

そのため、パフォーマンスに対する大きな要件がない場合 (結局のところ、実際の開発では 100,000 ほど大きい配列は存在しません)、apply と Array.from を使用するのが最も便利です。

以上がJavaScriptを使用して配列をバッチで作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。