我试图返回JSON对象结构中的特定节点,如下所示
{
"id":"0",
"children":[
{
"id":"1",
"children":[...]
},
{
"id":"2",
"children":[...]
}
]
}
Run Code Online (Sandbox Code Playgroud)
所以这是一个像树一样的孩子 - 父母关系.每个节点都有一个唯一的ID.我试图找到一个特定节点这样
function findNode(id, currentNode) {
if (id == currentNode.id) {
return currentNode;
} else {
currentNode.children.forEach(function (currentChild) {
findNode(id, currentChild);
});
}
}
Run Code Online (Sandbox Code Playgroud)
我执行搜索,例如findNode("10", rootNode).但即使搜索找到匹配项,该函数也会返回undefined.我有一种不好的感觉,递归函数在找到匹配后不会停止并继续运行finally返回,undefined因为在后面的递归执行中它没有到达返回点,但我不知道如何解决这个问题.
请帮忙!
我有这个数组:
[
{
id: 1,
name: 'test 1',
children: []
},
{
id: 2,
name: 'test 2',
children: [
{
id: 4,
name: 'test 4'
}
]
},
{
id: 3,
name: 'test 3',
children: []
}
]
Run Code Online (Sandbox Code Playgroud)
如何通过id此数组和嵌套children数组中的属性进行过滤?
例如,搜索id = 3,应返回test 3对象,并搜索id = 4应返回test 4对象.