Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jQuery或javascript递归搜索特定的子对象?_Javascript_Jquery_Recursion - Fatal编程技术网

如何使用jQuery或javascript递归搜索特定的子对象?

如何使用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

我知道我需要做一些类型的递归,但我对js和框架的语法不是很有经验。我需要将以下代码转换为不仅搜索allNodes的子级,还搜索allNodes.Children[0].Children[0],allNodes.Children[1].Children[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,它也会找到它们,这就是我所需要的,而不是建议的复制品。谢谢