在嵌套树中查找元素-JavaScript
在编写函数以搜索示例树中的元素时需要帮助在嵌套树中查找元素-JavaScript,javascript,dom,search,tree,breadth-first-search,Javascript,Dom,Search,Tree,Breadth First Search,在编写函数以搜索示例树中的元素时需要帮助 var sampletree = [ "a", "b", "c", [ "d", "e", [ "f", "h", "i", [ "z", "x" ] ] ], [ "y", "q", "t", [ "m", "n", [ "
var sampletree = [
"a",
"b",
"c",
[
"d",
"e",
[
"f",
"h",
"i",
[
"z",
"x"
]
]
],
[
"y",
"q",
"t",
[
"m",
"n",
[
"o",
"p"
],
[
"r",
"s",
[
"u",
"v"
]
]
]
],
"g"
]
希望通过只使用javascript而不使用框架/库的广度优先搜索来搜索树中的内部元素,如o、p、u、v,从而返回true/false
我使用for循环运行,然后运行.indexOf,但无法获得它。您可以使用此函数:
函数findNodeBFS(树,节点){
var queue=tree.slice();
对于(变量i=0;i console.log(findNodeBFS(sampletree,“j”);//false
您可以使用此功能:
函数findNodeBFS(树,节点){
var queue=tree.slice();
对于(变量i=0;i console.log(findNodeBFS(sampletree,“j”);//false
那么,如果搜索“u”,您希望返回值是什么?为什么[dom]被标记在您的问题上?您正在尝试手动遍历DOM吗?不要这样做。那么,如果搜索“u”,您想要什么作为返回值?为什么在您的问题上标记[dom]?您正在尝试手动遍历DOM吗?不要那样做。啊,是的,谢谢你突出显示@4castle。把它变成了BFS版本。你能给我解释一下代码中的“if(Array.isArray(queue[i])queue=queue.concat(queue[i]);”吗@trincotI添加了一些解释。啊,是的,谢谢你突出显示@4castle。你能解释一下“if(Array.isArray(queue[i])queue=queue.concat(queue[i]);”的代码吗@trincotI为我添加了一些解释。