zoukankan      html  css  js  c++  java
  • 多维数组遍历添加新属性,以及获取所有key

    // 后台返回菜单json数据,根据组件缺少key 与title,需对数据进行二次加工。

    // 菜单结构树转换
    export const changeMenuTreeData = (arr) => {
      if (arr) {
        arr.forEach((item, index) => {
          // item.child_type=1 表示含有子菜单; item.child_type=2 表示含有子功能
          if (Number(item.child_type) === 1) {
            // 含有子菜单
            item.key = item.id ? `menu-${item.id}` : `menu-${index}`
            item.title = item.app_name ? item.app_name : item.name
            if (item.children) changeMenuTreeData(item.children)
          } else if (Number(item.child_type) === 2) {
            // 含有子菜单
            item.key = item.id ? `func-${item.id}` : `func-${item.name}-${index}`
            item.title = item.name
            if (item.func) changeMenuTreeData(item.func)
          } else {
            item.key = item.id ? `func-${item.id}` : `func-${item.name}-${index}`
            item.title = item.name
          }
        })
      }
      return arr
    }
    // 获取菜单结构树所有key,默认下拉树展开
    export function getKey(arr, newArr) {
      newArr = newArr || []
      arr.forEach((item, index) => {
        if (item['key']) {
          newArr.push(item['key'])
          if (item['children']) {
            getKey(item['children'], newArr)
          }
        }
      })
      return newArr
    }
  • 相关阅读:
    二分查找练习
    Linux中Buffer和Cache的区别
    c++设计模式之单例模式
    c++设计模式之工厂模式
    C++中内存泄漏的几种情况
    snprintf
    命名空间和模块化编程1
    避免内存泄漏
    静态对象强制类型转换
    副本构造器
  • 原文地址:https://www.cnblogs.com/litterjoan/p/12794176.html
Copyright © 2011-2022 走看看