树形结构数据处理

12、Ext JS 树形结构的数据处理与功能拓展 本文详细介绍了 Ext JS 树形结构的数据处理与功能拓展。内容涵盖 JSON 和 XML 数据的加载和处理方式,以及树形结构中的拖放、排序、节点编辑等实用功能的实现方法。文章还总结了各项功能的操作流程,并提供了常见问题的解决方案及实际应用场景示例,帮助开发者构建交互性强、功能丰富的树形结构应用程序。 阅读详情

前端使用 


/**
 * 构造树型结构数据
 * @param {*} data 数据源
 * @param {*} depid 儿子节点id字段 默认 'depid'
 * @param {*} parentId 父节点id字段 默认 'parentId'
 * @param {*} children 孩子节点数据存储字段 默认 'children'
 * @param {*} rootId 根Id 默认 0
 */
export function handleTree(data, depid, parentId, children, rootId) {
 depid = depid || 'depid'
 parentId = parentId || 'parentId'
 children = children || 'children'
 rootId = rootId || 0
 //对源数据深度克隆
 const cloneData = JSON.parse(JSON.stringify(data))
 //循环所有项
 const treeData = cloneData.filter(father => {
  let branchArr = cloneData.filter(child => {
   //过滤每一项的子级数组然后返回
   return father[depid] == child[parentId]
  });
  branchArr.length > 0 ? father.children = branchArr : '';
  //返回第一层
  return parseInt(father[parentId]) == rootId;
 });
 return treeData != '' ? treeData : data;
}

后端使用

public List<TreeSelect> buildDeptTreeSelect(List<Dept> depts)
    {
        List<Dept> deptTrees = buildDeptTree(depts);
        return deptTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
    }
/**
     * 构建前端所需要树结构
     *
     * @param depts 部门列表
     * @return 树结构列表
     */
    @Override
    public List<Dept> buildDeptTree(List<Dept> depts)
    {
        List<Dept> returnList = new ArrayList<Dept>();
        List<String> tempList = new ArrayList<String>();
        for (Dept dept : depts)
        {
            tempList.add(dept.getDeptId());
        }
        for (Iterator<Dept> iterator = depts.iterator(); iterator.hasNext();)
        {
            Dept dept = (Dept) iterator.next();
            // 如果是顶级节点, 遍历该父节点的所有子节点
            if (!tempList.contains(dept.getParentId()))
            {
                recursionFn(depts, dept);
                returnList.add(dept);
            }
        }
        if (returnList.isEmpty())
        {
            returnList = depts;
        }
        return returnList;
    }

 

构建高效树形结构的JSON数据处理技术 JSON数据格式支持两种类型的结构:对象(Object)和数组(Array)。一个对象是由一系列无序的键值对组成,用大括号{}包围;而数组则是由一系列有序的值组成,用中括号[]包围。每个键值对由一个冒号分隔,值可以是字符串、数字、布尔值、数组、对象或null。示例代码块:"age": 30,JSON支持以下数据类型:- 字符串(String):用双引号括起来的字符序列。- 数字(Number):不带引号的数字序列。- 布尔值(Boolean):true或。 阅读详情

相关推荐

东华大学oj系统 39 最大乘积

39 最大乘积 作者: Turbo时间限制: 1S章节: 深度优先搜索 问题描述 : 对于n个数,从中取出m个数,如何取使得这m个数的乘积最大呢? 输入说明 : 第一行一个数表示数据组数   每组输入数据共2行:   第1行给出总共的数字的个数n和要取的数的个数m,1<=n<=m<=15,   第2行依次给出这n个数,其中每个数字的范围满足:a[i]的绝对值小于等于4。 输出说明 : 每组数据输出1行,为最大的乘积。 输入范例 : 1 5 5 1 2 3 4 2 输出范例 : 48 注:难

weixin_50336369的博客 527

构造树形结构数据(转化)

构造树形结构数据(转化)

qq_46344419的博客 1496

基于DNN、CNN与SVM的串联电弧故障智能检测:从原理到嵌入式部署

在电气安全与工业物联网领域,时间序列分类是处理传感器信号、实现状态监测与故障诊断的核心技术。其原理在于从连续的信号数据中提取有效特征,并利用机器学习模型识别异常模式。这项技术的核心价值在于能够实现设备预测性维护、提升系统安全性并降低运维成本,广泛应用于智能电表、电机健康监测、电力设备保护等场景。本文聚焦于电气安全中的一个具体且危险的隐患——串联电弧故障的检测。针对这一隐蔽性强、传统方法误报率高的问题,项目深入实践了三种主流AI模型:深度神经网络、卷积神经网络和支持向量机。通过对比DNN的通用特征学习能力、C

weixin_31860973的博客 413

递归处理树形结构

递归处理树形结构

qq_40063198的博客 415

Google账号找回通用方法(尤其是知道账号密码仍无法登录和找回的)

Google账号找回通用方法【尤其是知道账号密码仍无法登录和找回的】普通找回注意:适用于常用谷歌账户的设备和网络情况下无法使用手机或辅助邮箱验证码进行密码找回特殊找回方法注意;适用于1.新的设备以及网络环境(包括由于非正常原因导致设备系统以及应用信息变更)2.没有开启辅助验证(手机/邮箱)3.知道账号密码但无法登录或找回。通过申诉进行找回 普通找回 注意:适用于 常用谷歌账户的设备和网络情况下 无法使用手机或辅助邮箱验证码进行密码找回 通过恢复页面进行恢复 https://accounts.google

极客代码-极致生活 23万+

别再为数据发愁了!盘点5个公开可用的医学图像数据集(含MRI/CT/PET合成任务)

本文详细介绍了5个高质量的公开医学图像数据集,涵盖MRI、CT和PET三大模态,适用于深度学习模型训练和医学图像合成任务。每个数据集均提供下载指南、预处理技巧和PyTorch加载示例,帮助研究人员快速获取和处理数据,解决医学AI开发中的数据瓶颈问题。

weixin_30689307的博客 523

构造树型结构数据

/** 构造树型结构数据 @param {*} data 数据源 @param {*} id id字段 默认 ‘id’ @param {*} parentId 父节点字段 默认 ‘parentId’ @param {*} children 孩子节点字段 默认 ‘children’ @param {*} rootId 根Id 默认 0 */ export function handleTree(data, id, parentId, children, rootId) { id = id || ‘id’ p

小磊博客 363

绕过Google Play:获取Expo Go安卓APK的实用指南

本文为国内安卓开发者提供了绕过Google Play商店获取Expo Go APK的实用指南。针对无法访问Google Play的痛点,详细介绍了通过官方GitHub Releases、可信第三方网站(如APKMirror)及APK下载器等多种安全获取途径,并重点讲解了APK安装、安全验证(核对签名)及常见连接问题的排查方法,帮助开发者顺利开启React Native开发之旅。

weixin_29006701的博客 577

解读一下这段代码function handleTree (data, id, parentId, children) { const config = { id: id || 'id', ...

这段代码的作用是将一个平行结构的数组转化为树形结构的数组。 这个函数接收四个参数: data:原始数据,一个平行结构的数组 id:数据中表示每个节点的唯一标识的属性名称 parentId:数据中表示每个节点的父节点的唯一标识的属性名称 children:转化后的树形结构中表示子节点的属性名称 在函数内部,首先会根据 parentId 属性建立父子节点之间的映射关系,然后根据这个映射关系转化为树...

weixin_35755562的博客 520

Qt开发中彻底解决中文乱码问题

中文乱码问题主要源于编码不一致需要同时设置控制台和Qt应用程序的编码确保项目文件和环境配置的编码一致文件操作时注意指定正确的编码。

qq_53832058的博客 3404

【推荐100个unity插件】性能极高的逼真爆炸、火焰和烟雾效果——UNI VFX

这是一篇关于Unity中高性能GPU粒子特效插件UNI VFX的使用指南。文章介绍了该插件提供逼真的爆炸、火焰和烟雾效果,支持URP和HDRP渲染管线。主要内容包括:插件安装方法(需预先安装Visual Effect Graph和Shader Graph包)、事件系统使用方法(如create/loop/stop等事件控制)、特效分类(自动结束型和持续型特效)、检视面板配置技巧以及性能优化建议(特别提醒灯光特效对性能的影响较大)。文末还推荐了多个Unity开发相关的专栏内容。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1487

递归算法,如何把list中父子类对象递归成树

以前写代码for循环写的多,递归除了在大学学习以外,真没怎么用过! 最近项目中使用到了关于族谱排列的问题,就是怎么把数据库里的多个子父类people对象,在界面中用树的结构展示出来 假设数据库中people有两个字段分别是ID和ParentId(当然设计的时候肯定会有familypath,rootID之类的字段,这里为了方便介绍就只用俩字段) 话不多说直接上代码吧 using Sys...

weixin_33762321的博客 971

国资e学快速学习实战教程

本文主要介绍了国资e学快速学习实战教程,希望能对同学们有所帮助。 文章目录 1. 前言 2. 实战教程

weixin_43178406的博客 11万+

国家行业代码数据处理为树形结构

原始数据为excel,数据如下图所示:行业代码为国家标准代码,可以自行进行百度搜索 行业代码规则如下图所示1、需求是打算将行业代码按树形展示,而在设计树形表结构的时候通常会有一个key值和父级key值(id与pid);查看原始数据后发现数据已经是按树形进行展示,但是并不是我们要的id和pid的形式,因此我们需要将数据进行处理,这里让产品帮忙配了一下数据,将对应值的父级名称进行了填充,填充后如下图所示:2、 处理好数据后,直接打开对应数据库,将excel导入(注:导入时需要将上述excel 的第一列删除,保证

Renners的博客 867

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

JS数据处理——扁平化数组转换为树形结构

本文介绍了将扁平数组转换为树形结构的三种方法:递归实现、数组高阶方法优化和非递归哈希表实现。递归方法代码简洁但存在性能瓶颈,高阶函数优化可读性更好,而非递归方法通过哈希表提升处理效率,适合大数据场景。文章对比了各方法的时间/空间复杂度,提出性能优化建议,并列举了省市区选择器、组织架构管理等典型应用场景。开发者可根据数据量、层级深度和性能需求选择合适方案,其中非递归方法在处理大规模层次数据时最具优势。

菜喵的博客 2260

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

树形结构的数据处理

数据结构 let arr = [ { id: 1, name: '一级1', parentId: 0 }, { id: 2, name: '一级2', parentId: 0 }, { id: 3, name: '二级1', parentId: 1 }, { id: 4, name: '二级2', parentId: 1 }, { id: 5, name: '二级3', parentId: 2 }, { id: 6, name: '二

qq_55576151的博客 367

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

js、vue将数据处理为二级、三级树形结构数据

原本的数据: 处理后的数据:

weixin_48011329的博客 430

PHP树形结构数据处理成面包屑结构

一、前言二、代码三、关键代码 一、前言 把树形结构数据处理成面包屑结构数据,处理结果如下图所示 二、代码 public function test() { //定义需要处理的数据 $data = [ [ 'id' => 1, 'pid' => 0, 'name' => '手机' ], [ 'id' => 2, 'pid' => 1, 'name' => 'A手机' ], [ 'id' => 3,.

夏已微凉、 753

excel数据处理,表格数据处理成树形结构

excel数据模版如下:红色部分为一级菜单,绿色部分为二级菜单,绿色部分对应的是三级菜单 现在将数据转化为树形结构 名称,编码,上级编码,这种格式,首先将数据做转化导入到mysql mysql根据逗号将一行数据拆分成多行数据 一级菜单和子数据,二级菜单和子数据分别导入数据结构一样的两张表 采用上面的逗号拆分法将数据拆分 拆分之后将一级菜单数据存入到一张表如下 二级机构存入一张表 之后两张表做联合查询 最后得到的数据结果如下 ...

陌子曦的专栏 4708

扁平化数据处理成tree树形结构

let data = [ {exist: "false", appId: "1", name: "组织管理1", menuId: 1, id: 1, type: "menu", parentId: "root"}, {exist: "false", appId: "1", name: "组织管理2", menuId: 2, id: 2, type: ...

海北军 1145

vue2树形结构-将后端数据处理为树形结构

el-tree树形结构 可以进行编辑新增等功能。

qq_63169664的博客 773

数据处理为树形结构以及多级菜单的逻辑分析

菜单数据源处理: //数据源组装成树形结构(一级与后面的级逻辑相同)逻辑:遍历所有数据,上级与下次的联动关系相等则数据存放,如果不为最后一级,递归function getTree(source, data, pid) { var length = source.length; for (var i = 0; i < length; i++) { var ...

done1898的博客 618

数据处理,实现JSON树形结构

数据库中数据实现树形打印

Qzzz 2511

antd的TreeSelect组件,把后台返回的数据处理成树形结构

思路: 1、定义一个空数组nodeData,用于存储新构造的对象,let nodeData =[]; 2、遍历后台传来的数组treeData,treeData.map() (1)定义一个空对象,let treeObj = {}; (2)将数组中需要的属性赋值给新对象,作为新对象中的一个属性 treeObj.title = item.deptName; treeObj.value = item.deptName treeObj.key = item.dept...

Coralpapy的博客 3370
上一篇: 【php】跨域post请求
下一篇: Vue常用时间戳转换为时间代码
jason.小木杉
博客等级 码龄10年 50粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值