問題:
深くネストされた 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>
非再帰的アプローチの場合:
<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 サイトの他の関連記事を参照してください。