我有恰好是一个for循环我真的不得不为这个递归函数使用全局变量吗?
function deepFindGroup(groupName, currentGroup) {
console.log("Testing");
for (e in currentGroup) {
if (currentGroup[e].intName == groupName) {
console.log(currentGroup[e]["Members"]);
return currentGroup[e]["Members"];
} else if (currentGroup[e]["Members"]) {
return deepFindGroup(groupName, currentGroup[e]["Members"]);
}
}
}
看来我不能处理一个有意义的return语句每一种可能性递归函数。例如,如果currentGroup [e] .intName不等于groupName,并且该分支的子节点没有成员属性(在这种情况下,它根本没有任何子节点)。它最终返回undefined。我能想到的唯一解决方案是制作一个全局变量,我试图避免这一点。
编辑: 该函数应该返回树中给定的分支。该树由包含“成员”的对象(具有intName属性)组成,其本身可以是包含其他成员的对象。成员也可以包含任何内容,但仍然有一个intName。
貌似是:
Gengroup_1--intName: Gengroup_1
|
--Members-- nochild -- intName: nochild
|
--Gengroup_2--intName: Gengroup2
|
--Members-- object -- intName: object
|
-- anotherObject -- intName: anotherObject
应该做的功能是什么? – Ryan
返回树中给定分支的位置 –
请更具体一点。无论如何,您可能需要一个值来表示没有发现任何东西(例如'null')并在从子查找返回之前检查该值。 – Ryan