zoukankan      html  css  js  c++  java
  • iview tree 获取选中子节点的整条数据链

    这样子获取到数据是,checked等于true的,获取不到他的父级,父级的父级

    解决办法代码如下:

     //需要有一个唯一ID

            //======================================
            //扩展remove方法
            Array.prototype.remove = function (val) {
              let index = this.indexOf(val);
              if (index > -1) {
                this.splice(index, 1);
              }
            };
            //======================================
            //获取整条数据链
            function getParent(array, childs, ids) {
              for (let i = 0; i < array.length; i++) {
                let item = array[i];
                if (Number(item.id) === Number(ids)) {
                  childs.push(item);
                  return childs;
                }
                if (item.children && item.children.length > 0) {
                  childs.push(item);
                  let rs = getParent(item.children, childs, ids);
                  if (rs) {
                    return rs;
                  }
                  else {
                    childs.remove(item);
                  }
                }
              }
              return false;
            }
    
            //获取所有选中节点
            let params = this.$refs.tree.getCheckedNodes();
            //所有数据
            let allData = ['所有数据'];
            //循环执行所有选中的节点链,放到arr1数组里
            let arr1 = [];
            for (let i = 0; i < params.length; i++) {
              //单条数据链
              let aData = getParent(allData, [], params[i].id);//方法入口在这里
              for (let y = 0; y < aData.length; y++) {
                //拆分成单个json数组放到arr1里
                arr1.push(aData[y]);
              }
            }
    
            //arr1去重 es6的set方法
            function dedupe(array) {
              return Array.from(new Set(array));
            }
    
            arr1 = dedupe(arr1);

    这样就能获取完整的整条数据链

  • 相关阅读:
    CodeForces 7B
    CodeForces 4D
    离散化
    线段树入门
    洛谷 P3951 小凯的疑惑(赛瓦维斯特定理)
    Codeforces 1295D Same GCDs (欧拉函数)
    Codeforces 1295C Obtain The String (二分)
    Codeforces 1295B Infinite Prefixes
    Codeforces 1295A Display The Number(思维)
    Codeforces 1294F Three Paths on a Tree(树的直径,思维)
  • 原文地址:https://www.cnblogs.com/xinchenhui/p/9504393.html
Copyright © 2011-2022 走看看