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
    }
  • 相关阅读:
    SublimeText3激活
    Mysql数据备份
    supervisor介绍与使用
    spark-submit介绍
    Spark之spark.sql
    MarkDown编写方法
    Nginx配置多级代理后获取用户真实IP
    Hive之UDF解释
    Hive之分组取前几条记录
    Hive之Map和Reduce的优化
  • 原文地址:https://www.cnblogs.com/litterjoan/p/12794176.html
Copyright © 2011-2022 走看看