做公司項目時,要求寫一個方法,方法的參數為一個菜單數組集合和一個菜單id,菜單數組的格式為樹狀json,如下面所示:
{"id":1,"text":"公司文化"},
{"id":2,"text":"招聘計劃"},
{"id":6,"text":"公司新聞","children":[
{"id":47,"text":"行業新聞"}]},
{"id":11,"text":"內部新聞","children":[
{"id":24,"text":"行政信息"},
{"id":27,"text":"高層指示"}]},
{"id":22,"text":"聯系我們"},
{"id":26,"text":"產品展示","children":[
{"id":32,"text":"電力產品"},
{"id":33,"text":"配件介紹"}}]
}] }]
現在給出的菜單id為32,要求找到對應的項,并返回對應的菜單名稱,方法是先循環遍歷數組,當項的id等于指定的id時,將菜單名稱取出,如果不等于則看當前項是否有children,如果children不為空且數量大于0,則遍歷children,這時就要用到javascript的閉包,將遍歷children的方法放在一個匿名方法中,這樣一直在匿名方法中遞歸自身,當遇到相同名稱的id,就跳出循環,然后從主方法中返回得到的菜單名稱,代碼如下:
新聞熱點
疑難解答