ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で ID によってオブジェクトを取得するには、配列とオブジェクトのどちらが効率的ですか?

JavaScript で ID によってオブジェクトを取得するには、配列とオブジェクトのどちらが効率的ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-26 07:50:30871ブラウズ

 Is an Array or an Object More Efficient for Retrieving Objects by ID in JavaScript?

JavaScript における配列とオブジェクトの効率: 包括的な分析

JavaScript で大規模なデータセットを扱う場合、効率を考慮することが不可欠になりますデータの保存と取得の方法。この記事では、配列とオブジェクトの効率性のトピックを詳しく掘り下げ、ID による取得が主な関心事である特定のシナリオに対処します。

配列とオブジェクト: 違いを理解する

一般的な認識にもかかわらず、JavaScript は連想配列を提供しません。代わりに、配列とオブジェクトはさまざまな役割を果たします。

配列:

  • 順序付けられた値のコレクションであり、数値インデックスを介してアクセスできます。
  • 順序付けされたデータ シーケンスを格納するために設計されています。

オブジェクト:

  • キーと値のペアの順序付けされていないコレクションです。
  • が適していますプロパティと値として構造化されたデータを表現します。

ストレージ オプション: 配列とオブジェクトのアプローチの探索

個々のオブジェクトを効率的に格納および取得するには、2 つの主要なオプションが必要になります。 :

オプション 1: 非結合インデックスを持つ配列

オブジェクトは、増加する数値インデックスを持つ配列に格納されます。

let array = [{ id: 29938, name: 'name1' }, { id: 32994, name: 'name1' }];
function getObject(id) {
  for (let i = 0; i < array.length; i++) {
    if (array[i].id === id) {
      return array[i];
    }
  }
}

オプション 2: キーと値のペアを持つオブジェクト

オブジェクトは、ID をキーとして使用してオブジェクトに保存されます。

let obj = {};
obj[29938] = { id: 29938, name: 'name1' };
obj[32994] = { id: 32994, name: 'name1' };
function getObject(id) {
  return obj[id];
}

パフォーマンス分析: オプションのベンチマーク

効率を評価するために、次のパフォーマンス テストを実施します。

  • 10,000 ~ 60,000 の範囲でランダムに生成されたオブジェクト ID。
  • 非結合インデックスを持つ配列、穴の開いた配列、およびキーと値のペアを持つオブジェクト。
  • ID によるオブジェクト取得の複数回の反復。

テスト結果:

  • ほとんどの場合、ID によるオブジェクトの取得では、配列の方がオブジェクトよりも高速に実行されました。
  • 穴のある配列を使用すると、連続配列と比較してパフォーマンスに大きな影響を与えます。
  • ソート操作により効率のバランスは変わりますが、配列が高速になるという一般的な傾向は変わりません。

結論

パフォーマンス テストに基づくと、配列はこれは、特に取得操作が頻繁に行われるシナリオにおいて、ID に基づいて個々のオブジェクトを保存および取得するためのより効率的な選択肢として浮上します。一方、オブジェクトには、プロパティと値がオブジェクトの順序付けされていない性質により適しているため、データ表現において利点があります。

以上がJavaScript で ID によってオブジェクトを取得するには、配列とオブジェクトのどちらが効率的ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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