ホームページ  >  記事  >  ウェブフロントエンド  >  ネストされた JavaScript オブジェクト内の特定のオブジェクトを効率的に見つけるにはどうすればよいですか?

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

Susan Sarandon
Susan Sarandonオリジナル
2024-11-03 02:48:03703ブラウズ

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 サイトの他の関連記事を参照してください。

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