Javascript递归函数返回undefined
Javascript recursion function returning undefined
我甚至不确定这个问题的标题应该是什么-我不确定哪里出了问题。
我正在写一个函数,简单地循环通过二叉树。假设我们有一个简单的树,如:
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]?
谢谢!
递归调用必须将值返回给调用者
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);
return searchLeft(node, path); //here return
}
相关文章:
- RequireJS向模块传递配置总是返回undefined
- JSON数组数据返回Undefined
- JavaScript”;.方法“;返回undefined
- jQuery可以't获取data-*属性值,返回undefined
- Javascript/JSON警报返回Undefined
- Javascript:firstChild对象返回undefined
- 使用在函数外部声明的变量的 Javascript 返回值 + undefined
- 当尝试使用ajax读取文件时,变量返回undefined
- 如何避免JSON.stringify在特殊情况下返回undefined,从而为JSON.parse创建字符串失败
- 使用谷歌地图:一个返回undefined的自定义javascript函数
- Json在nodeJs和AngularJs中返回undefined
- 为什么像 Firefox 和 Chrome 控制台中的 '}{' 这样的结构会返回 'undefined'?
- 使用 HTML 和 JavaScript 从表单访问值时返回 undefined
- 在 CoffeeScript 中,当尝试调用类中的方法 (@_methodName) 时,它会返回 undefined
- 解析承诺'当'返回undefined(Javascript)
- NodeJS:zlib.gunzip(body)错误地返回“undefined”
- window.open在chrome扩展中返回undefined
- javascript中的If/else不会为undefined返回else
- “undefined"返回而不是游戏名称
- 为什么“typeof false || undefined”返回"布尔值”;