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文は、デバッガで確認(実行取得されていないとき、私は私が実際に成功したチェックを持っていないことを確認することができます
これはうまくいきました。私は今、あなたのフィブスの例で、なぜそれがうまくいくのかを説明します。 – HelloWorld
@HelloWorld問題ありません、喜んで助けてください! – Li357