的父根我有一個JSON對象樹遞歸:如何獲得所選擇的樹節點
{
"saxena": {
"chewning": {
"betten": {},
"ching": {},
"kelley": {}
},
"kobrinsky": {
"karniely": {},
"naveh": {},
"rozenfeld": {},
"shalom": {}
},
"schriever": {
"brinker": {},
"mcleland": {},
"merrick": {}
},
"vacant": {
"akers": {},
"carlton": {
"marvin": {}
},
"fox": {
"glover": {
"clements": {},
"koya": {}
},
"holden": {}
}
}
},
"bill": {
"phil": {
"bob": {},
"smith": {},
"hello": {}
},
"bye": {
"ok": {},
"hmm": {},
"no": {},
"alright": {}
}
}
}
根名稱是Saxena先生和比爾的樹狀結構。我想創建一個函數來確定用戶搜索的用戶的根名稱。
對於最簡單的情況,如果他們搜索saxena,它會返回saxena。如果他們退還帳單,它將返回帳單。
對於更復雜的情況,如果用戶在她下面搜索任何名字,則會返回saxena。例如,如果我搜索betten,akers,glovers或koya,則將返回saxena。
如果我搜索鮑勃,史密斯或好的話,賬單將被退回。
這是我迄今的工作。我嘗試使用遞歸,但由於某種原因,當我找到選定的名稱時,我返回一個未定義的。
var findRootName = function(data, ltmName) {
for (var key in data) {
if (key == ltmName) {
return key;
} else {
findNode(data[key], ltmName);
}
}
}
var findNode = function(data, ltmName) {
for (var key in data) {
if (key == ltmName) {
return key;
} else {
findNode(data[key], ltmName);
}
}
}
http://jsfiddle.net/gthnfta7/7/
有人可以幫我弄清楚,爲什麼我的遞歸函數不工作?
請直接插入JavaScript,請進入的問題你的問題。外部引用作爲您的代碼的唯一參考在StackOverflow中是不允許的,因爲它們有隨着時間的推移而消失或變化的習慣,這會使未來的讀者無法使用該問題,並且Stackoverflow想成爲信息的重要參考,而不僅僅是原來的人提出這個問題,也爲很多人提出了這個問題。 – jfriend00 2015-01-27 00:26:26
你應該這樣做,否則你的問題可能會被關閉。使用「編輯」鏈接修改您的問題,並將相關的代碼插入到問題中。 – jfriend00 2015-01-27 00:32:36
好得多。現在你的問題有更長久的用處。 – jfriend00 2015-01-27 00:38:15