按鍵尋找巢狀物件
導覽深度巢狀的陣列和物件以尋找特定值可能是一項具有挑戰性的任務。考慮這樣一個場景,您有一個像所提供的那樣複雜的資料結構。要定位具有嵌套幾層深度的特定“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中文網其他相關文章!