-1
我甚至不确定这个问题的标题应该是什么 - 我不确定发生了什么问题。返回undefined的Javascript递归函数
我正在写一个函数,只是循环通过二叉树。假设我们有一棵简单树例如:
testTree = {
data: 5,
left: {
data: 10,
left: undefined,
right: undefined
},
right: {
data: 2,
left: undefined,
right: undefined
}
}
我们试图从最左边的路径开始收集数据。这里是搜索左功能:
function searchLeft(node, path){
if(typeof node.left == 'undefined'){
console.log(path);
return path;
}
node = JSON.parse(JSON.stringify(node.left));
path.push(node.data);
searchLeft(node,path);
}
当运行它,内部的console.log(路径)示出正确的值:
[10]
但是,如果我
console.log(searchLeft(testTree,[]));
我得到
不确定
为什么没有正常工作返回[10]?
谢谢!
在这个例子中,你是正确的。但是为了深入克隆一个对象,假设它有很多层次,JSON方法非常简单并且可能最快。关于阅读我的代码,为什么你认为我没有?我console.logged每一步的方式,并不知道为什么在函数中,'路径'保持正确的价值,但'返回路径'后它是未定义的。我走过每条线。 – ZAR
为什么是反对/近距离投票? – ZAR