我有恰好是一個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