JavaScript_javascript スキルのコレクションと効率化

WBOY
リリース: 2016-05-16 18:37:02
オリジナル
895 人が閲覧しました

このコレクションのキーは String 型のみですが、さまざまなオブジェクトを Key として使用できる Java のさまざまなコレクション クラスとは異なり、一般的なクライアント JS の機能を実現するには十分です。同様に、すべての JS 内部オブジェクトは Object オブジェクトから継承するため、JS の Array オブジェクトは、PHP の配列変数と同様に、実際に文字列を配列の添字として使用できます。鳥食品玄より。

配列は JavaScript によって提供される標準のコレクションであり、その中の要素を for ループを通じてトラバースすることもできます。配列に加えて、JavaScript で他のコレクションを使用できますか?

JavaScript の言語機能により、ユニバーサル オブジェクトに対してプロパティを動的に追加および削除できます。したがって、Object は JS の特別なコレクションとみなすこともできます。配列とオブジェクトの特性を比較してみましょう:

配列:

New: var ary = new Array(); または var ary = []>Add: ary.push(value );
削除: ary[n]; トラバース: for ( var i=0 ; i
オブジェクト:

新規: var obj = new Object(); または var obj = {};
追加: obj[key] = 値;
削除: obj[key]; >Traversal: for ( var key in obj ) obj[key];

上記の比較から、ポップアップ ウィンドウを使用して無限の Web ページ メニューを作成できることがわかります。 3) Eric によって実装された __MenuCache__ を導入しました。これもシミュレートされたコレクション オブジェクトです。

配列内の指定された値を取得したい場合は、配列全体を反復処理する必要があります:




コードをコピー

コードは次のとおりです: var キーワード = ; for ( var i=0 ; i < ary.length ; i )
{
if ( ary [i] = = キーワード )
{
// todo
}
}


そして、Object 内の指定されたキーを持つエントリを取得するには、以下を行うだけで済みます。 use:

var key = '';
var value = obj[key];
// todo

Object のこの機能を使用すると、一意の文字列コレクションを効率的に取得できます。配列を走査する時間計算量は O(n) ですが、オブジェクトを走査する時間計算量は O(1) です。 10,000 件のコレクションの取得コストはわずか数十ミリ秒ですが、1,000*1,000 件以上の取得となると、Object を使用する利点がすぐにわかります。この前に、100 個の一意の文字を 1000 個の文字列配列にマッピングするマッピングを実行しましたが、これには 25 ~ 30 秒かかりました。その後、for traversal が Object によってシミュレートされたコレクションのメンバー参照に変更されました。同じ量のデータ マッピングにかかる​​時間はわずか 1.7 ~ 2 秒です。!!!

コレクションの走査効率 (高から低)。 ): var value = obj[key]; for ( ; ; ) > for ( in )。最も効率が低いのは for(in) です。コレクションが大きすぎる場合は、for(in) を使用しないでください。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート