// Menu 菜單
type Menu struct {
ID int
ParentID int
Name string
Children []Menu
}
// TreeList 菜單
type TreeList struct {
ID int
ParentID int
Name string
Children []TreeList
}
// FormMenu 格式化菜單
func FormMenu(list []Menu, pid int) (formMenu []Menu) {
for _, val := range list {
if val.ParentID == pid {
if pid == 0{
// 頂層
formMenu = append(formMenu, val)
} else {
var children []Menu
child := val
children = append(children, child)
}
}
}
return
}
// GetMenu 獲取菜單
func GetMenu(menuList []Menu,pid int) []TreeList {
treeList := []TreeList{}
for _, v := range menuList {
if v.ParentID == pid {
child := GetMenu(menuList,v.ID)
node := TreeList {
ID: v.ID,
Name: v.Name,
ParentID: v.ParentID,
}
node.Children = child
treeList = append(treeList, node)
}
}
return treeList
}
func main() {
myMenu := []Menu{
{ID: 1,ParentID: 0, Name:"用戶管理"},
{ID: 2,ParentID: 0, Name:"會員管理"},
{ID: 3,ParentID: 0, Name:"權(quán)限管理"},
{ID: 4,ParentID: 2, Name:"會員管理"},
{ID: 5,ParentID: 2, Name:"黑名單"},
{ID: 6,ParentID: 4, Name:"會員列表"},
}
list := GetMenu(myMenu,0)
fmt.Printf("list:%v",list)
}
Golang 無限極菜單分類
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。