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);
上一篇 下一篇

猜你喜欢

热点阅读