この調査では、ユーザーはオブジェクト、その子、およびその子孫を再帰的に反復するメカニズムを探します。さらに、検出された各ノードの名前を取得したいと考えています。
解決策は、JavaScript の for...in ループにあります。このループは、オブジェクトの列挙可能なプロパティを反復処理します。これは次のように使用できます。
<code class="javascript">for (var key in foo) { if (key === "child") { // Perform an action specific to the "child" node } }</code>
for...in ループは、オブジェクト自身のプロパティと継承されたプロパティの両方を反復処理できることに注意してください。継承されたプロパティへの作用を回避するには、hasOwnProperty メソッドを利用します。
<code class="javascript">for (var key in foo) { if (!foo.hasOwnProperty(key)) { continue; // Skip inherited properties } if (key === "child") { // Perform an action specific to the "child" node } }</code>
反復を再帰的に実行するには、再帰関数を使用できます。
<code class="javascript">function eachRecursive(obj) { for (var k in obj) { if (typeof obj[k] === "object" && obj[k] !== null) { eachRecursive(obj[k]); // Recurse through the nested node } else { // Perform an action specific to the non-object node } } }</code>
以上がJavaScript でネストされたオブジェクトを再帰的に反復する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。