js 删除树状图无用数据,如果子级没有数据则删除

news/2025/2/21 19:30:54/

有一个需求,当你从后端拿到一个树状图的时候,有些子级没数据,这时就需要我们处理一下数据,当然了,如果第一层底下的第二层没数据,第二层底下的所有都没数据,那这一层都不需要。
我的写法,先删除最后一层,然后以此类推,往上删除。使用递归。

    deleteTreeAreaData(node) {for (let i = node.length - 1; i >= 0; i--) {const item = node[i];if (!item.hasOwnProperty('children')) continue;if (item.children.length === 0 && item.data.dataType == "area") {node.splice(i, 1);continue;}this.deleteTreeInvalidData(item.children);}},deleteTreeInvalidData(tree) {for (let i = tree.length - 1; i >= 0; i--) {const item = tree[i];if (!item.hasOwnProperty('children')) continue;if (item.children.length === 0 && item.data.dataType == "unit") {tree.splice(i, 1);continue;}this.deleteTreeInvalidData(item.children);}},

可以优化,但是我没优化。


http://www.ppmy.cn/news/1168259.html

相关文章

Vagrant安装Oracle数据库错误的解决

最近笔记本升级到Windows 11后,利用Oralce Vagrant项目安装19.3.0企业版总是出错,错误为: ...oracle-19c-vagrant: Installing : 2:ethtool-4.8-10.el7.x86_64 54/55oracle-19c-vagrant: Installing : o…

车规MCU开发工具之Vector DaVinci Configurator执行arxml合并操作

环境 Step1 导入要合并的arxml 、 Step 2 比较、合并过程 <完>

树上问题相关笔记

LCA LCA&#xff0c;即最近公共祖先。 我们用 f ( i , j ) f(i,j) f(i,j) 表示 i i i 的第 2 j 2^j 2j 级父亲&#xff0c;由于 i i i 的第 2 j 2^j 2j 级父亲可以由它的第 2 j − 1 2^{j-1} 2j−1 父亲向上再跳 2 j − 1 2^{j-1} 2j−1 层得到&#xff0c;那么 i i …

Centos 无法连接 WIFI

环境 硬件&#xff1a;ASUS X550VC, x86_64系统&#xff1a;CentOS 7.9 现象 系统安装后无法上网&#xff0c;终端命令提示符为shadow3dlocalhost&#xff0c;我的疑问是这里不是应该显示我的主机名吗&#xff0c;为什么是localhost呢&#xff1f;突然有些时候&#xff0c;可…

【华为OD机试】分苹果

A、B两个人把苹果分为两堆&#xff0c;A希望按照他的计算规则等分苹果&#xff0c;他的计算规则是按照二进制加法计算&#xff0c;并且不计算进位 1259(1100 01019)&#xff0c;B的计算规则是十进制加法&#xff0c;包括正常进位&#xff0c;B希望在满足A的情况下获取苹果重量…

【SpringBoot】拦截器(Interceptor)的使用

感兴趣的可以查看上一篇过滤器的使用 【Springboot】Filter 过滤器的使用 一、什么是拦截器 拦截器&#xff08;Interceptor&#xff09;是一种特殊的组件&#xff0c;它可以在请求处理的过程中对请求和响应进行拦截和处理。拦截器可以在请求到达目标处理器之前、处理器处理请…

MapperStruct实现类为空

​ 问题描述&#xff1a; MapperStruct生成的实现了为空 按照在MapperStruct官网Installation – MapStruct中的方法配置后&#xff0c;生成的实现了是空的&#xff0c;如下&#xff1a; Overridepublic DeployHistory toEntity(DeployHistoryDto arg0) {if ( arg0 null ) …

洛谷p1618三连击

import java.util.Scanner; //将 1-9 共9个数分成3组&#xff0c;分别组成3个三位数&#xff0c;且使这3个三位数构成A:B:C的比例&#xff0c;试求出所有满足条件的3个三位数。不满足输出“No!!!”。 public class Main {public static void main(String[] args) {Scanner sc …