Я пытаюсь вернуть конкретный node в структуре объекта JSON, который выглядит как
{
"id":"0",
"children":[
{
"id":"1",
"children":[...]
},
{
"id":"2",
"children":[...]
}
]
}
Итак, это древовидное дочернее-родительское отношение. Каждый node имеет уникальный идентификатор. Я пытаюсь найти конкретный node, как этот
function findNode(id, currentNode) {
if (id == currentNode.id) {
return currentNode;
} else {
currentNode.children.forEach(function (currentChild) {
findNode(id, currentChild);
});
}
}
Я выполняю поиск, например, findNode("10", rootNode)
. Но даже если поиск находит совпадение, функция всегда возвращает undefined
. У меня плохое представление о том, что рекурсивная функция не останавливается после нахождения совпадения и продолжает работать, наконец возвращает undefined
, потому что в последних рекурсивных исполнениях она не достигает точки возврата, но я не уверен, как исправить это.
Пожалуйста, помогите!