JavaScript では、オブジェクトのコレクションを保存するときに、配列とオブジェクトのどちらを使用するかという問題に直面します。この説明では、特定のオブジェクトを ID で取得し、追加の操作を実行する場合の、これら 2 つのオプションの効率について検討します。
JavaScript には連想配列がないことを明確にすることが重要です。配列。ただし、ギャップのある配列を作成して、実質的に連想配列のように機能させることができます。一方、オブジェクトは、キーと値のペアを備えた真の連想データ構造を提供します。
次のコードを考えてみましょう:
// Array var a = [{id: 29938, name: 'name1'}, {id: 32994, name: 'name1'}]; // Object var a2 = {}; a2[29938] = {id: 29938, name: 'name1'}; a2[32994] = {id: 32994, name: 'name1'};
オブジェクトを使用すると、ID によって単一のオブジェクトを取得する方が効率的です。オブジェクト構造により、ID をキーとして使用した直接検索が可能になり、O(1) 操作になります。配列には線形検索が必要ですが、配列が大きくなるにつれて遅くなります。
コレクション全体のループは、一般的に配列を使用すると高速になります。オブジェクトは ID による O(1) ルックアップを提供しますが、すべてのキーと値を反復処理する必要があり、大規模なデータセットの場合は遅くなる可能性があります。
配列を使用すると並べ替えがより効率的になります。これは、配列には、要素を昇順に効率的に配置するネイティブの並べ替え機能があるためです。オブジェクトの並べ替えには、より複雑なプロセスが必要であり、時間がかかる場合があります。
経験的テストに基づくと、検索操作では配列の方がオブジェクトよりわずかに優れています。ただし、パフォーマンスの差はそれほど大きくなく、配列とオブジェクトの選択はアプリケーションの特定の要件に基づいて行う必要があります。
要約すると、検索操作では配列の方がわずかに高速です。物よりも。ただし、コレクション全体の並べ替えやループが頻繁に行われる場合は、オブジェクトの方が適切な選択となる可能性があります。トレードオフとアプリケーション特有のニーズを理解すると、どのデータ構造を使用するかについて情報に基づいた決定を下すのに役立ちます。
以上がオブジェクト ストレージの配列とオブジェクト: ルックアップ、ループ、並べ替えではどちらが効率的ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。