1 / * 再帰的なマッチングメニューパス* / 2 recursionMenu:関数(recursionField = ''、MENU = []){ 3 LET menuTree = { 4 タイトル: 'ホーム' 、 5。 URL: '/ページ/索引' 、 6人の。 子供: MENU 7。 }; 8 _menuは[] =せ; // パスの配列 。9 LET = FindIT falseに ; // に一致 10が ある、getPath =せ関数{(木) 11。 _menu.push({ 12 タイトル:tree.title、 13 パス:tree.url 14 }); 15 であれば(tree.title === recursionField){ 16 findItは= 真。 17 リターン; 18 } 19 であれば(tree.children && tree.children.length> 0 ){ 20 のための(I 0 =せ; I <tree.children.length; I ++ ){ 21 ある、getPath(tree.children [I])。 22 もし(findIt)リターン; 23 } 24 _menu.pop()。 25 } そう であれば(tree.children || tree.children.length === 0!){ 26 _menu.pop()。 27 } 28 }。 29 ある、getPath(menuTree)。 30 リターン_menu。 31 }