キーによるネストされたオブジェクトの検索
深くネストされた配列やオブジェクトをナビゲートして特定の値を見つけるのは、困難な作業となる場合があります。提供されているような複雑なデータ構造があるシナリオを考えてみましょう。特定の 'id' プロパティが複数のレベルでネストされたオブジェクトを見つけるには、再帰を利用できます。
再帰的ソリューション
提供された関数 'getObject' は、オブジェクトを入力として受け取り、そのプロパティを反復処理します。プロパティが配列の場合、関数は各要素を再帰的に検索します。それ以外の場合、関数はプロパティが目的の 'id' であるかどうかをチェックし、一致するものが見つかった場合はオブジェクトを返します。
function getObject(theObject) { var result = null; if (theObject instanceof Array) { for (var i = 0; i < theObject.length; i++) { result = getObject(theObject[i]); if (result) { break; } } } else { for (var prop in theObject) { console.log(prop + ': ' + theObject[prop]); if (prop == 'id') { if (theObject[prop] == 1) { return theObject; } } if (theObject[prop] instanceof Object || theObject[prop] instanceof Array) { result = getObject(theObject[prop]); if (result) { break; } } } } return result; }
このソリューションは、ネストされたデータ構造を再帰的に走査し、指定された ' を持つオブジェクトを検索します。 id」プロパティ。プロパティ配列とオブジェクトの両方を処理し、完全な検索を保証します。
更新された例
更新された jsFiddle (http://jsfiddle.net/FM3qu/7/) )、提供された関数を使用して、複雑なデータ構造内で 'id' が 1 に設定されたオブジェクトを見つけることができます。
以上がJavaScript でキーによってネストされたオブジェクトを検索する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。