ネストされた JavaScript オブジェクト内の特定のオブジェクトを効率的に見つけるにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-03 02:48:03
オリジナル
702 人が閲覧しました

How to Efficiently Find a Specific Object in Nested JavaScript Objects?

ネストされた JavaScript オブジェクトの反復処理

ネストされた JavaScript オブジェクトの反復処理は、特にプロパティに基づいて特定のオブジェクトを取得する必要がある場合に困難になることがあります。価値。次の例を考えてみましょう:

<code class="javascript">var cars = {
  label: 'Autos',
  subs: [
    {
      label: 'SUVs',
      subs: []
    },
    {
      label: 'Trucks',
      subs: [
        {
          label: '2 Wheel Drive',
          subs: []
        },
        {
          label: '4 Wheel Drive',
          subs: [
            {
              label: 'Ford',
              subs: []
            },
            {
              label: 'Chevrolet',
              subs: []
            }
          ]
        }
      ]
    },
    {
      label: 'Sedan',
      subs: []
    }
  ]
};</code>
ログイン後にコピー

「Ford」ブランドのオブジェクトを取得したい場合は、再帰的アプローチを使用できます:

<code class="javascript">const iterate = (obj, identifier) => {
  for (let key in obj) {
    if (obj[key]['label'] === identifier) {
      return obj[key];
    }
    if (typeof obj[key] === 'object' && obj[key] !== null) {
      const result = iterate(obj[key], identifier);
      if (result) {
        return result;
      }
    }
  }
  return null;
};

const fordObject = iterate(cars, 'Ford');</code>
ログイン後にコピー

この例では、 iterate 関数は、検索するオブジェクトと識別子文字列の 2 つのパラメータを取ります。オブジェクトのプロパティを反復処理して、ラベル プロパティが識別子と一致するかどうかを確認します。そうでない場合は、プロパティが別のオブジェクトであるかどうかをチェックし、反復を続行します。一致するオブジェクトが見つからない場合は、null を返します。

以上がネストされた JavaScript オブジェクト内の特定のオブジェクトを効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート