首页 > 其他分享 >tree数据结构处理

tree数据结构处理

时间:2023-03-01 10:36:54浏览次数:38  
标签:数据结构 string sysPermModuleVOS 处理 tree parentId null any moduleId

import React from 'react';
interface RootObject {
  createUserId?: any;
  createUserName?: any;
  createTime?: any;
  updateUserId?: any;
  updateUserName?: any;
  updateTime?: any;
  moduleId: string;
  moduleName: string;
  parentId: string;
  moduleType: number;
  showOrder?: any;
  sysPermList: any[];
  sysPermModuleVOS: SysPermModuleVO2[];
}

interface SysPermModuleVO2 {
  createUserId?: any;
  createUserName?: any;
  createTime?: any;
  updateUserId?: any;
  updateUserName?: any;
  updateTime?: any;
  moduleId: string;
  moduleName: string;
  parentId: string;
  moduleType: number;
  showOrder?: any;
  sysPermModuleVOS: SysPermModuleVO[];
  sysPermList: any[];
}

interface SysPermModuleVO {
  createUserId?: any;
  createUserName?: any;
  createTime?: any;
  updateUserId?: any;
  updateUserName?: any;
  updateTime?: any;
  moduleId: string;
  moduleName: string;
  parentId: string;
  moduleType: number;
  showOrder?: any;
  sysPermModuleVOS: any[];
  sysPermList: any[];
}
export default function ceshi() {
  const downData: RootObject[] = [
    {
      createUserId: null,
      createUserName: null,
      createTime: null,
      updateUserId: null,
      updateUserName: null,
      updateTime: null,
      moduleId: '1630464368070103040',
      moduleName: '夹具需求',
      parentId: '0',
      moduleType: 1,
      showOrder: null,
      sysPermModuleVOS: [
        {
          createUserId: null,
          createUserName: null,
          createTime: null,
          updateUserId: null,
          updateUserName: null,
          updateTime: null,
          moduleId: '1630464565793787904',
          moduleName: '夹具需求',
          parentId: '1630464442514804736',
          moduleType: 1,
          showOrder: null,
          sysPermModuleVOS: [
            {
              createUserId: null,
              createUserName: null,
              createTime: null,
              updateUserId: null,
              updateUserName: null,
              updateTime: null,
              moduleId: '1630464614846173184',
              moduleName: '夹具需求',
              parentId: '1630464565793787904',
              moduleType: 1,
              showOrder: null,
              sysPermModuleVOS: [],
              sysPermList: []
            }
          ],
          sysPermList: []
        }
      ],
      sysPermList: []
    }
  ];

  // function treeInit(down:RootObject[]) {
  //   const treeData:{
  //     title: string;
  //     key: string;
  //     children: {
  //       title: string;
  //       key: string;
  //     }[];
  // }[] = [];
  //   let snap = 0;
  //   while (snap < down.length) {
  //     const {moduleName, parentId, moduleId} = down[snap];
  //     treeData[snap] = {
  //         title: moduleName,
  //         key: parentId == '0' ? moduleId : (parentId + '-' + moduleId),
  //         children: [],
  //     };
  //     if (down[snap].sysPermModuleVOS.length > 0) treeData[snap].children = treeInit(down[snap].sysPermModuleVOS);
  //     snap++;
  //   }
  //   return treeData;
  // }
  // console.log(treeInit(downData));
  function treeInit(arr: RootObject[], list:any[]) {
    for (let i of arr) {
      const {moduleName,parentId,moduleId,sysPermModuleVOS} =i
      list.push({
        title: moduleName,
        key: parentId == '0' ? moduleId : parentId + '-' + moduleId,
        children: []
      });
      for (let  a of list) {
        a.children = []
        treeInit(sysPermModuleVOS,a.children)
        if (a.children.length===0) delete a.children;
      }
    }
   
    return list
  }
  console.log(treeInit(downData,[]));
  return <div>ceshi</div>;
}

  

标签:数据结构,string,sysPermModuleVOS,处理,tree,parentId,null,any,moduleId
From: https://www.cnblogs.com/zjxzhj/p/17167170.html

相关文章

  • Redis 五种数据结构以及三种高级数据结构解析
    Redis五种数据结构以及三种高级数据结构解析硬核资源!Redis五种数据结构以及三种高级数据结构解析(详解)(baidu.com) Redis五种数据结构以及三种高级数据结构解析(38......
  • 【基本数据结构】链表
    链表通过指针将一组零散的内存串联在一起,也是一种非常基础、非常常用的数据结构。 一、常见的3种链表从内存的角度来看,数组需要一块连续的内存空间,对内存的要求比较高......
  • Redis数据结构
    (38条消息)Redis数据结构_redis数据结构_RWCC的博客-CSDN博客Redis是使用了一个「哈希表」保存所有键值对,哈希表的最大好处就是让我们可以用O(1)的时间复杂度来快速......
  • ClickHouse(13)ClickHouse合并树MergeTree家族表引擎之CollapsingMergeTree详细解析
    目录建表折叠数据算法资料分享参考文章该引擎继承于MergeTree,并在数据块合并算法中添加了折叠行的逻辑。CollapsingMergeTree会异步的删除(折叠)这些除了特定列Sign有1和-1......
  • 【Mybatis】【配置文件解析】【四】Mybatis源码解析-mappers的解析四(绑定Mapper、处理
    1 前言我们上节把我们mapper里的sql节点以及我们的增删改查都解析了,那么最后回来就剩下两块没看了,一块是我们的mapper跟我们的接口绑定,一块就是我们在解析的过程中......
  • 变量处理中的标准化方法
    关于标准化的几点理解:标准化(Standard),是将数据以一个相同的尺度进行缩放归一化(Normalization)是以缩放到[0,1]区间sklearn中的Scaler,可以将数据缩放到给定的区间内......
  • 处理 S4过账时的错误:“更正统一日记账分类账的定制设置”
    1.S4HANA环境新配置的公司代码,做凭证时报错:2. 点开后报错:  3. 分别点击提示事务  检查分类账设置路径:IMG->财务会计->财务会计全局设置->分类账->分类账-......
  • C语言预处理指令
    1、宏操作符##操作符可以把宏参数转换成字符串#include<stdio.h>#defineSTR(n)#nintmain(){printf("STR(n)中的值为:%s",STR(5+6));return0;}通过GCC预编译后可以......
  • 通过java代码向mysql数据库插入记录,中文乱码处理
    处理步骤修改mysql配置文件,并重启mysql服务。mysql默认配置文件路径为/etc/my.cnf。修改配置如下:[mysqld]character-set-server=utf8[client]default-character-set......
  • dremio 的 telemetry 处理简单说明
    dremio实际上添加了支持基于opentelemetry的监控处理,代码处理上官方是已经支持了metrics,当然也是支持trace的参考处理机制处理上基于了配置,同时利用了jackson多太类型......