tree组件 通过一个id 去查询其所有上级数据并返回一个数组

该篇博客介绍了如何用TypeScript实现一个循环遍历树形结构的函数,通过给定的id查找并返回所有上级节点的数据。在代码中,作者定义了一个LoopTree类,包含一个关键方法initLoopTree,它根据提供的treeId在树结构中查找并收集上级节点,最终返回一个包含这些节点的数组。
摘要由CSDN通过智能技术生成

tree组件 通过一个id 去查询其所有上级数据并返回一个数组
1、前提是父级和子级数据有关联
2、本代码实现是使用ts实现的所以有些类型校验。

import BOrgTreeVO from 'model/remote/org/tree/BOrgTreeVO'
import BTreeVO from 'model/remote/basic/BTreeVO'

class LoopTree {

    /**
    * auth:wangyahao
    * describe: 通过treeId 去找数组节点的所有上级数据并返回
    * 
    * @param originalOptions // 原始tree list
    * @param loopOptions  // 循环中的找到的下级
    * @param id // 使用id去寻找
    */

    endResult: BTreeVO<BOrgTreeVO>[] = []
    private forEachOption(originalOptions, loopOptions, id) {
        const res = loopOptions.find(res1 => {
            if (res1.treeId === id) {
                return res1
            } else {
                if (res1.children && res1.children.length > 0) {
                    this.forEachOption(originalOptions, res1.children, id)
                }
            }
        })

        if (res) {
            this.endResult.push(res)
            if (res.value !== '0') {
                this.forEachOption(originalOptions, originalOptions, res.treePid)
            }
        }
    }

    public initLoopTree(originalOptions, id) {
        this.endResult = []
        this.forEachOption(originalOptions, originalOptions, id)
        return this.endResult
    }
}

export default new LoopTree()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值