**js-树形结构根据子类id获取到最父级对应id**

js-树形结构根据子类id获取到最父级对应id

数据结构:
在这里插入图片描述
根据后代子key,匹配到对应最父级key;
处理后的后辈集合:
在这里插入图片描述

  getParentKey() {
      let parentKey = "";
      let folderId = form.folderId;//当前子id
      let formFolders = formFolders;//树数据
      let list = [];
      let parentsKeys = [];
      // 把顶级+子级都整合起来;
      let fn1 = (arr, childIds) => {
        childIds.push(arr.key);
        if (!arr.isLeaf && arr.children) {
          arr.children.forEach((item) => {
            fn1(item, childIds);
          })
        } else {
          return childIds;
        }
        return childIds;
     } 
      for (let i in formFolders) {
        let obj = {
          id: formFolders[i].key,
          childIds:[],
        }
        let childIdDatas = fn1(formFolders[i], obj["childIds"]);
        obj["childIds"] = childIdDatas;
        parentsKeys.push(obj);
      };
      parentsKeys.forEach((item, index)=>{
        if (item.childIds.includes(folderId)) {
          parentKey = item.id;
          return;
        }
      })
      return parentKey
    }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值