zoukankan      html  css  js  c++  java
  • 递归遍历ztree树形结构并只获取最后一级child的id和name组成新数组

    //handleTreeCheck是选中的节点
    //treeNode是节点上的数据,是个对象
    //treeNode.childMenuList是节点上的子节点,是个数组
    function handleTreeCheck(el, a, treeNode) {
          if (treeNode.checked) { //如果节点选中
          //如果是最后一级节点数据,直接将数据推进authTableData中
            if (treeNode.check_Child_State === -1) {
              authTableData.push({
                username: treeNode.name,
                userid: treeNode.id,
              });
            } else {
            //调用该函数并传递子节点数据
              calleArr(treeNode.childMenuList);
              function calleArr(array) {
              //遍历子节点上的数据
                for (i in array) {
                  var data = array[i]; //得到每个节点
                  //如果该节点上有childMenuList,说明有子节点
                  if (data.childMenuList) {
                  //将子节点传入该函数作为新参数再调一次
                  //如果需将每个子节点都组成新数组,写在此处,这里只需要最后一级数据,所以不写
                    calleArr(data.childMenuList); 
                  } else {
                  //此处找到最里层的childMenuList数据,可以操作了
                    authTableData.push({
                      username: data.name,
                      userid: data.id,
                    });
                  }
                }
              }
            }
          //如果没有被选中,需将authTableData中的数据过滤掉,道理同上
          } else {
            if (treeNode.check_Child_State === -1) {
              authTableData = authTableData.filter(function (items) {
                return items.userid !== treeNode.id;
              });
            } else {
              calleArr1(treeNode.childMenuList);
              function calleArr1(array) {
                for (i in array) {
                  var data = array[i];
                  if (data.childMenuList) {
                    calleArr1(data.childMenuList); //自己调用自己
                  } else {
                    authTableData = authTableData.filter(function (items) {
                      return items.userid !== data.id;
                    });
                  }
                }
              }
            }
          }
    	//将数据填充到表格中
          table.reload("auth_table", {
            data: authTableData,
          });
        }
    
  • 相关阅读:
    Anltr 规格严格
    非结构文本分析 规格严格
    获取32R的图像的直方图的一个算法
    NetBeans 6.5 开发计划
    Java中国象棋博弈程序探秘[6]——游戏与界面
    NetBeans 时事通讯(刊号 # 14 Jul 01, 2008 )
    Download NetBeans IDE 6.5 Milestone 1!
    Java中国象棋博弈程序探秘[5]——搜索算法
    100本顶尖软件开发书籍
    Java中国象棋博弈程序探秘[4]——生成有效着法
  • 原文地址:https://www.cnblogs.com/33shan/p/15019181.html
Copyright © 2011-2022 走看看