ホームページ  >  記事  >  ウェブフロントエンド  >  ネストされた JavaScript オブジェクトを再帰的に反復するにはどうすればよいですか?

ネストされた JavaScript オブジェクトを再帰的に反復するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-02 02:25:31418ブラウズ

How to Recursively Iterate Through Nested JavaScript Objects?

ネストされた JavaScript オブジェクトの反復 [重複]

問題:
深くネストされた JavaScript オブジェクトを再帰的に反復して、指定された識別子に基づく特定のオブジェクト (例: "label" プロパティ)?

解決策:

再帰による元の回答

徹底的に反復処理する再帰を使用したネストされたオブジェクト:

<code class="js">const iterate = (obj) => {
  Object.keys(obj).forEach((key) => {
    console.log(`key: ${key}, value: ${obj[key]}`);

    if (typeof obj[key] === 'object' && obj[key] !== null) {
      iterate(obj[key]);
    }
  });
};

console.log(iterate({ ...cars }));</code>

2023 更新: 非再帰的アプローチ

非再帰的アプローチの場合:

<code class="js">const iterate = (obj) => {
  const stack = [obj];
  while (stack?.length > 0) {
    const currentObj = stack.pop();
    Object.keys(currentObj).forEach((key) => {
      console.log(`key: ${key}, value: ${currentObj[key]}`);
      if (typeof currentObj[key] === 'object' && currentObj[key] !== null) {
        stack.push(currentObj[key]);
      }
    });
  }
};

console.log(iterate({ ...cars }));</code>

どちらのアプローチでも、キーネストされた各オブジェクトの値と値がコンソールに記録されます。

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

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