实现需求:把一个多维数组对象通过条件合并至一个数组中;如下图需求:
递归代码封装实现:
// 递归设置function setHandleListb(list) {const arr = [];let obj = {}; list.forEach(item => { const tmp = { ...item };if(tmp.purview_tag){if (tmp.children) {const chirlList = setHandleListb(tmp.children)obj = {purview_tag: tmp.purview_tag,admin_menu_id: tmp.admin_menu_id,icon: tmp.icon,is_show: tmp.is_show,name: tmp.name,parent_id: tmp.parent_id,}arr.push(obj)arr.push(...chirlList);}else {obj = {purview_tag: tmp.purview_tag,admin_menu_id: tmp.admin_menu_id,icon: tmp.icon,is_show: tmp.is_show,name: tmp.name,parent_id: tmp.parent_id}arr.push(obj);}}})return arr;}// 使用设置存储export function setMenuList(menu) {// 操作权限列表 purview_tagconst result = JSON.stringify(setHandleListb(menu))window.sessionStorage.setItem('HandleChirldList', result)}// 取出操作权限设置export function getHandleChirldList() {var list = window.sessionStorage.getItem('HandleChirldList');if (list) {return JSON.parse(list);}return [];}
以上内容仅供参考!