如何使用jQuery或javascript递归搜索特定的子对象?
我知道我需要做一些类型的递归,但我对js和框架的语法不是很有经验。我需要将以下代码转换为不仅搜索allNodes的子级,还搜索allNodes.Children[0].Children[0],allNodes.Children[1].Children[0]等,然后返回foundNode如何使用jQuery或javascript递归搜索特定的子对象?,javascript,jquery,recursion,Javascript,Jquery,Recursion,我知道我需要做一些类型的递归,但我对js和框架的语法不是很有经验。我需要将以下代码转换为不仅搜索allNodes的子级,还搜索allNodes.Children[0].Children[0],allNodes.Children[1].Children[0]等,然后返回foundNode function findNodeById(id) { var foundNode; if (id === 0) { foundNode
function findNodeById(id) {
var foundNode;
if (id === 0) {
foundNode = allNodes[0];
} else {
$.each(allNodes[0].Children, function(index, subNode) {
if (subNode.Id === id) {
foundNode = subNode;
return false;
}
});
};
return foundNode;
}
下面是数据的样子,如果这有帮助的话:添加数组作为参数,这样您就可以递归调用传递子数组的函数
函数findNode(id,arr){
var foundNode=false;
$。每个(arr,功能(U3,项目){
如果(item.Id==Id){
foundNode=项目;
返回false;
}else if(item.Children&&item.Children.length){
foundNode=findNode(id,item.Children);
return!foundNode;
}
});
返回foundNode;
}
$.getJSON('https://gist.githubusercontent.com/matt-thorp333/09415cb90f8568f145b8b8526fc9ceb0/raw/fa6404a2f213a4e695826bf4483cb0e2f6859c77/gistfile1.txt,函数(数据){
console.log('Found 0:',!!findNode(0,data));//应为true
console.log('Found 2:',!!findNode(2,data));//应为true
console.log('Found 3:',!!findNode(3,data));//应为true
console.log('Found 19:',!!findNode(19,data));//应为false
})
如何使用jQuery搜索JSON树的可能重复-可能重复而不是重复-这只适用于作为第一个数组元素的子元素的对象,就像我的代码一样。如果要用嵌套更深的子元素修改gist,它也会找到它们,这就是我所需要的,而不是建议的复制品。谢谢