实现需求:把一个多维数组对象 通过条件 合并至一个数组中;如下图需求:
递归代码封装实现:
// 递归设置
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_tag
const 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 [];
}
以上内容仅供参考!