我在树状视图中有一个根节点" A" ," A" 节点可能有任意数量的子节点节点等。我必须搜索此树中的节点,并想知道给定树中搜索节点的级别。需要使用Collection框架和核心java或JQuery在java / Java脚本中进行逻辑实现。
bellow是我需要搜索的JSON数据。
var data=[{"id":"a","children":[{"id":"b","children":[{"id":"c","children":[{"id":"f","children":[{"id":"h"}]}]},{"id":"d"},{"id":"e"}]}]}]
这里是上面的JSON如果我想获得id f 的对象,我使用方法 findNode(data," f")给我节点 f 的对象,但我也想要节点 f 的等级,这是3级,我怎么能得到它。并建议我搜索节点的另一种方法,这将提高搜索性能,这种方法非常慢,因为递归我必须在数据库中获取java中的下一条记录,在java脚本中数据/ JSON的数量将变大,可能导致崩溃浏览器。
function findNode(node, nodeId) {
var childrenLen, found;
if (node.id === nodeId) {
return node;
} else if (node.children) {
childrenLen = node.children.length;
while(childrenLen--) {
found = findNode(node.children[childrenLen], nodeId);
if(found) {
return found;
}
}
}
}