树结构数据父节点获取所有子节点的id

使用

 $scope.getGroupLevel($scope.meetingGroupData);

递归处理数据

//获取会议室分组的所有下属节点的id
    $scope.getGroupLevel = function (meetingGroupData){
        if(meetingGroupData != undefined && meetingGroupData.length > 0){
            for(var i =0 ;i < meetingGroupData.length ; i ++){
                $scope.groupLevel(meetingGroupData[i],meetingGroupData);
                //去掉最后一个逗号
                meetingGroupData[i].children = meetingGroupData[i].children.substring(0,meetingGroupData[i].children.length-1);
            }
        }
    };

 //递归获取分组子集
    $scope.groupLevel = function (currentGroup,meetingGroupData) {
        if(meetingGroupData != undefined && meetingGroupData.length > 0){
            var id = currentGroup.id;
            currentGroup.children = "";
            for(var i = 0 ; i < meetingGroupData.length;i++){
                if(id == meetingGroupData[i].pid){
                    currentGroup.children += meetingGroupData[i].id+",";
                    var nodeChildren = $scope.groupLevel(meetingGroupData[i], meetingGroupData);
                    if(nodeChildren.length > 0){
                        currentGroup.children += nodeChildren;
                    }
                }
            }
            return currentGroup.children;
        }
    };

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
在JavaScript中,我们可以通过遍历树结构获取某个节点下的所有节点。下面是一个使用递归方法来实现的示例代码: ```javascript // 定义树结构数据 var data = [ { id: 1, name: '节点1', children: [ { id: 2, name: '节点1-1', children: [] }, { id: 3, name: '节点1-2', children: [ { id: 4, name: '节点1-2-1', children: [] }, { id: 5, name: '节点1-2-2', children: [] } ] } ] }, { id: 6, name: '节点2', children: [] }, { id: 7, name: '节点3', children: [] } ]; // 定义函数来获取指定节点下的所有节点 function getChildren(parentNode, result) { for (var i = 0; i < parentNode.children.length; i++) { var childNode = parentNode.children[i]; result.push(childNode); // 将节点添加到结果数组中 if (childNode.children.length > 0) { getChildren(childNode, result); // 递归调用获取节点节点 } } } // 调用函数来获取指定节点下的所有节点 var parentId = 1; // 指定节点id var parent = data.find(node => node.id === parentId); // 找到指定的节点 var children = []; // 用于存储节点的结果数组 getChildren(parent, children); console.log(children); // 输出结果:[{ id: 2, name: '节点1-1', children: [] }, { id: 3, name: '节点1-2', children: [...] }, { id: 4, name: '节点1-2-1', children: [] }, { id: 5, name: '节点1-2-2', children: [] }] ``` 以上代码中,我们首先定义了一个包含树结构数据数组。然后,我们通过定义一个`getChildren`函数,使用递归的方式遍历树结构,从指定的节点开始获取所有节点。最后,我们调用这个函数来获取指定节点下的所有节点,并将结果存储在一个数组中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大小小丹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值