透過鍵找出巢狀陣列中的物件
在處理複雜的巢狀資料結構時,通常需要依照鑰匙。這可能具有挑戰性,尤其是當資料嵌套很深時。
遞歸來救援
遞歸允許我們透過將巢狀資料分解為更小的資料來導航它。可管理的區塊。這是一個遞歸函數,可以找到具有給定鍵的物件:
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中文網其他相關文章!