ExtJS是一種流行的JavaScript框架,它可以幫助開發者快速搭建具有豐富交互性的Web應用程序。這里介紹了如何使用遞歸來獲取一個多級JSON菜單。
// 定義一個JSON菜單 var menu = { text: '主菜單', items: [{ text: '子菜單1', items: [{ text: '子菜單1-1', items: [{ text: '子菜單1-1-1' }, { text: '子菜單1-1-2' }] }, { text: '子菜單1-2' }] }, { text: '子菜單2', items: [{ text: '子菜單2-1' }, { text: '子菜單2-2' }] }] }; // 定義遞歸函數 function getItems(menu) { var items = []; // 定義一個空數組來存儲所有菜單項 for (var i = 0; i< menu.items.length; i++) { var item = menu.items[i]; if (item.items) { // 如果該項包含子菜單項,則遞歸調用getItems函數 items = items.concat(getItems(item)); } else { // 如果該項沒有子菜單項,則把它添加到items數組中 items.push({ text: item.text }); } } return items; // 返回所有菜單項的列表 } // 調用getItems函數并輸出結果 console.log(getItems(menu));
以上代碼中,我們首先定義了一個多級JSON菜單對象,然后定義了一個遞歸函數getItems來遍歷該菜單,并獲取其中所有的菜單項。如果一個菜單項中包含子菜單項,則遞歸調用getItems函數來獲取其所有的菜單項,然后將其添加到items數組中。如果該菜單項不包含子菜單項,則直接把它添加到items數組中。最后,該函數會返回一個包含所有菜單項的列表。
通過使用遞歸函數getItems,我們可以方便地獲取多級JSON菜單中所有的菜單項。在開發使用ExtJS框架的Web應用程序時,這是一個非常實用的技巧。
上一篇mysql作者