0
我有,直到它找到一個匹配的文件夾名遞歸遍歷嵌套對象的方法:爲什麼不是我的遞歸函數返回最終結果?
findSpecifiedFolder(data) {
const bookmarks = JSON.parse(data).roots.bookmark_bar.children;
const search = bookmarks => {
for(let folder of bookmarks) {
const folderName = folder.name.toLowerCase();
if(folderName === folderArg.toLowerCase()) {
console.log(folder); // returns folder object
return folder // never returns anything
}
else if(folder.children) {
search(folder.children);
}
}
};
search(bookmarks);
}
因此,通過使用console.log
和我的調試器,我可以看到以下內容:
- 的方法呢,實際上是遞歸搜索給定的對象,嵌套至少3層深。
- 我可以證實,我其實是有一個成功的檢查時
if(folderName === folderArg.toLowerCase())
得到既通過console.log
語句並在調試器中的數據
但是執行時,沒有得到執行return語句(確認的調試器),並且該方法返回未定義(或者當我通過另一個錯誤日誌記錄方法調用時發生錯誤)。我不知道爲什麼在這裏,我問是否有人可能會看到我失蹤的方法中的一些錯誤。
這個工程和你的fib示例我現在得到它的工作原理 - 感謝解釋它! – HelloWorld
@HelloWorld沒問題,樂於幫忙! – Li357