当前位置:网站首页>编辑时过滤当前节点及根据限制的层数过滤数据
编辑时过滤当前节点及根据限制的层数过滤数据
2022-07-31 05:20:00 【前端备忘录】
判断当前树节点深度
getTreeDeep(treeData) {
let arr = [];
arr.push(treeData);
let depth = 0;
while (arr.length > 0) {
let temp = [];
for (let i = 0; i < arr.length; i++) {
temp.push(arr[i]);
}
arr = [];
for (let i = 0; i < temp.length; i++) {
if (temp[i].children && temp[i].children.length > 0) {
for (let j = 0; j < temp[i].children.length; j++) {
arr.push(temp[i].children[j]);
}
}
}
if (arr.length >= 0) {
depth++;
}
}
return depth;
},
过滤当前节点
filterCurNode(data,id){
let result ;
if(id) result = data.filter(item => item.id !== id);
else result = data;
return result;
},
标题
let level = 5;//树限制的层级数
setTreeNode(data, currentLevel, limitLevel, id) {
const vm = this;
currentLevel = currentLevel + 1;
return vm.filterCurNode(data,id).map(item => {
item.children = item.children && item.children.length && currentLevel < level -limitLevel ? vm.setTreeNode(item.children, currentLevel, limitLevel,id) : [];
return item
});
},
用法
this.setTreeNode(this.treeInfo, 0 , this.getTreeDeep(info),info.id)
其中 this.treeInfo 整棵树的数据;info 为当前选中树节点数据
边栏推荐
- ROS subscription to multiple topics time synchronization problem
- Oracle入门 05 - VirtualBox的虚拟机安装配置
- 什么样的人不适合入行编程?你真的适合学习编程吗?
- DOM操作案例1-点击,使表格的颜色切换(点击单元格,整行或整列颜色切换)
- Debian 搭建 WireGuard 服务端
- 【源码笔记】痛苦来源于比较——什么是相等,hashCode() 和 equals(Object)
- 闭包,装饰器,类方法,静态方法,委托属性
- IDEA overview and installation and debugging
- DOM-DOM的介绍以及通过方法获取元素
- svn冲突产生原因
猜你喜欢
随机推荐
Oracle入门 03 - Linux / Unix 系统基础知识
什么样的人不适合入行编程?你真的适合学习编程吗?
多线程(1)
力扣.三数之和/四数之和
安装显卡过程中遇到问题汇总
DOM操作-事件的绑定与解绑
5G的用途和工作原理
第一次实践——计算器
变更管理与 DevOps —— 二者同时进行吗?
ES6-03-解构赋值
随机数,函数
Oracle入门 12 - Linux 磁盘分区及LVM实战
DOM-DOM的介绍以及通过方法获取元素
C语言结构体(必须掌握版)
螺旋矩阵Ⅱ
记一次QT 2D 画图 实现3D动态效果
Oracle入门 10 - Linux 设备类型与文件目录结构
windows下mysql忘记密码登录,并创建用户
青龙面板从零搭建教程
OneManager搭建









