按键查找嵌套对象
导航深度嵌套的数组和对象以查找特定值可能是一项具有挑战性的任务。考虑这样一种场景,您有一个像所提供的那样复杂的数据结构。要定位具有嵌套几层深度的特定“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中文网其他相关文章!