キーによるネストされた配列内のオブジェクトの検索
複雑なネストされたデータ構造を扱う場合、多くの場合、キーに基づいて特定のオブジェクトを検索する必要があります。鍵。これは、特にデータが深くネストされている場合に困難になる可能性があります。
再帰によるレスキュー
再帰を使用すると、ネストされたデータをより小さなデータに分割してナビゲートできます。管理可能なチャンク。指定されたキーを持つオブジェクトを検索できる再帰関数を次に示します。
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) { 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 が 1 であるオブジェクトを検索してみましょう。ネストされた配列の例:
var myArray = [{ 'title': "some title", 'channel_id': '123we', 'options': [{ 'channel_id': 'abc', 'image': 'http://asdasd.com/all-inclusive-block-img.jpg', 'title': 'All-Inclusive', 'options': [{ 'channel_id': 'dsa2', 'title': 'Some Recommends', 'options': [{ 'image': 'http://www.asdasd.com', 'title': 'Sandals', 'id': '1', 'content': { // ... } }] }] }] }]; var result = getObject(myArray); console.log(result); // prints the found object
以上が再帰を使用してキーによって入れ子になった配列内のオブジェクトを検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。