JSON数据反向递归
2018-12-17 本文已影响18人
一沭丶
需求: 根据url上的菜单id,激活左侧菜单的选中状态并展开对应的父级菜单
数据:
https://www.easy-mock.com/mock/5c16fb992060e52d3e56392d/menuList/list
方法:
// 根据Id激活当前菜单所有父级菜单
// list 为上面接口返回的数据
let _list = JSON.parse(JSON.stringify(list));
const id = this.$route.params.id;
const depMenu = (children, id, obj ) => {
obj = obj ? obj : {};
children.map((item, index) => {
if (item.id == id) {
if(obj.id) {
obj.expand = true;
depMenu(_list, obj.id);
}
return;
} else {
if (item.children && item.children.length) {
depMenu(item.children, id, item);
}
}
});
};
depMenu(_list, id);
console.log(_list);