我有一个对象文字,它本质上是一棵没有固定数量级别的树。如何在树中搜索特定节点,然后在 javascript 中以高效方式找到该节点时返回该节点?
基本上我有一棵这样的树,我想找到标题为“randomNode_1”的节点
var data = [
{
title: 'topNode',
children: [
{
title: 'node1',
children: [
{
title: 'randomNode_1'
},
{
title: 'node2',
children: [
{
title: 'randomNode_2',
children:[
{
title: 'node2',
children: [
{
title: 'randomNode_3',
}]
}
]
}]
}]
}
]
}];
最佳答案
此答案基于@Ravindra 的答案,但具有真正的递归。
function searchTree(element, matchingTitle){
if(element.title == matchingTitle){
return element;
}else if (element.children != null){
var i;
var result = null;
for(i=0; result == null && i < element.children.length; i++){
result = searchTree(element.children[i], matchingTitle);
}
return result;
}
return null;
}
然后你可以调用它:
var element = data[0];
var result = searchTree(element, 'randomNode_1');
关于javascript - 如何使用 JavaScript 在树中查找节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9133500/