当前位置: 首页 > news >正文

JS,递归,处理树形数据组件,模糊查询树形结构数据字段

JS递归如何模糊查询树形结构数据,根据数据中的某一个字段值,模糊匹配

直接拿去使用就行

function filterTreeLabel(arr, label) {let result = []arr.forEach((item) => {// if (String(item.POBJECT_NAME).toLowerCase().indexOf(label)!=-1) {if (String(item.POBJECT_NAME).toLowerCase().includes(label)) {result.push(item);} else {if (item.children && item.children.length) {let children = filterTreeLabel(item.children, label);console.log(children,'---->>>zhid',item);let obj = {...item,children,};console.log(obj,'关键点:拼接成一个新的的数据对象');if (children && children.length) {result.push(obj);}}}});return result;}
// 模糊查询树形结构数据
function filterTreeByFilterLabel(arr, label,searchProps) {let result = []arr.forEach((item) => {// if (String(item.POBJECT_NAME).toLowerCase().indexOf(label)!=-1) {let searchProps = ['POBJECT_NAME','POBJECT_DESC']//多个column字段查询亦可以if(searchProps.some(key => String(item[key]).toLowerCase().indexOf(label) > -1)){// if (String(item.POBJECT_NAME).toLowerCase().includes(label)) {result.push(item);} else {if (item.children && item.children.length) {let children = filterTreeByFilterLabel(item.children, label,searchProps);let obj = {...item,children,};if (children && children.length) {result.push(obj);}}}});return result;
}




就问你牛不牛逼


// JS查询树形结构数据,根据id查询该节点和所有父级节点

function getParentsById(list, id) {for (let i in list) {if (list[i].ID === id) {//查询到就返回该数组对象return [list[i]]}if (list[i].children) {let node = getParentsById(list[i].children, id)if (node !== undefined) {//查询到把父节点连起来return node.concat(list[i])}}}}

获取当前节点的的叶子节点数据

function getCurrentNodeAllChildren(node) {let result = [node]; // 将当前节点添加到结果数组中if (node.children) {for (let child of node.children) {result = result.concat(getCurrentNodeAllChildren(child)); // 递归获取所有子孙节点}}return result;
}

const $table = tableRef.value;
let list = getCurrentNodeAllChildren(row)
$table.setTreeExpand(list,true)

http://www.lryc.cn/news/505620.html

相关文章:

  • 神州数码DCME-320 online_list.php 任意文件读取漏洞复现
  • nginx的内置变量以及nginx的代理
  • ubuntu监测硬盘状态
  • 3.2.1.2 汇编版 原子操作 CAS
  • InnoDB事务系统(二):事务的实现
  • xdoj :模式匹配
  • Redis的基本使用命令(GET,SET,KEYS,EXISTS,DEL,EXPIRE,TTL,TYPE)
  • LruCache(本地cache)生产环境中遇到的问题及改进
  • 智慧公交指挥中枢,数据可视化 BI 驾驶舱
  • 【计算机网络】期末考试预习复习|上
  • YOLOv8目标检测(四)_图片推理
  • AI工具如何深刻改变我们的工作与生活
  • springboot中——Logback介绍
  • 【Tomcat】第一站:理解tomcat与Socket
  • TQ15EG开发板教程:使用SSH登录petalinux
  • Java从入门到工作4 - MySQL
  • OpenShift 4 - 多云管理(2) - 配置多集群观察功能
  • 【鸿睿创智开发板试用】RK3568 NPU的人工智能推理测试
  • iOS swift开发系列 -- tabbar问题总结
  • 四、CSS3
  • Three使用WebGPU的关键TSL
  • ESP32-S3模组上跑通ES8388(30)
  • 概率论得学习和整理24:EXCEL的各种图形,统计图形
  • WPF中依赖属性的底层和普通属性的底层有什么不一样
  • 【Qt】drawText字体大小问题探究
  • Mapbox-GL 的源码解读的一般步骤
  • 【C++】高级分析 switch 语句的应用
  • 活动预告 | Surface 来了#11:Windows 11 AI+ PC,释放 AI 办公设备的无限潜能
  • php基础:正则表达式
  • go语言压缩[]byte数据为zlib格式的时候,耗时较多,应该怎么修改?