JS和JAVA对tree处理

本文介绍了一种使用Java和JavaScript实现递归查询树形结构的方法。通过递归调用,可以构建出完整的树形结构数据,适用于展示层级分明的数据集合,如文件系统或组织结构等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java

递归查询出树形结构

public List queryClassifyTree(String id) {
    OmOplanSystemArea area = new OmOplanSystemArea();
    area.setParentId(id);
    List<OmOplanSystemArea> first_list = systemAreaMapper.select(area);
    //默认查询出所有的一级类别
    List list = new ArrayList<>();
    for (OmOplanSystemArea systemArea : first_list) {
        JSONObject treeObject = new JSONObject(true);
        treeObject.put("id", systemArea.getId());
        treeObject.put("text", systemArea.getName());
        treeObject.put("type", systemArea.getType());
        treeObject.put("children", getChildren(systemArea.getId()));
        list.add(treeObject);
    }
    return list;
}

public List getChildren(String parentId){
    List<Object> list = new ArrayList<>();
    OmOplanSystemArea area = new OmOplanSystemArea();
    area.setParentId(parentId);
    List<OmOplanSystemArea> children = systemAreaMapper.select(area);
    for (OmOplanSystemArea systemArea : children) {
        JSONObject obj = new JSONObject(true);
        obj.put("id", systemArea.getId());
        obj.put("text", systemArea.getName());
        obj.put("type", systemArea.getType());
        obj.put("children", getChildren(systemArea.getId()));
        list.add(obj);
    }
    return list;
}

js

递归查询出树形结构

var menus = "";
    handler.GetData = function(bh,array){
        var childArry = handler.GetParentArry(bh, array);
        if (childArry.length > 0) {
            menus += '<ul class="mgl-25 hide" >';
            for (var i in childArry) {
                menus+=    '<li>';
                if(childArry[i].isLast != 'yes'){
                    menus+=    '<span></span>';
                    menus+= '    <label class="label-select" sysId="'+childArry[i].id+'" sysType="'+childArry[i].type+'" sysName="'+childArry[i].text+'">';
                }else{
                    menus+= '    <label class="label-select pdl-25" value="'+childArry[i].id+'" sysType="'+childArry[i].type+'" sysName="'+childArry[i].text+'">';
                }
                menus+=    '        <input type="radio" name="tree" class="hide"/><em></em>';
                menus+=    '    </label>';
                menus+=    '    <a href="#none">'+childArry[i].text+'</a>';
                  handler.GetData(childArry[i].id, array);
                menus+=    '</li>';
            }
                menus += '</ul>';
        }
        return menus;
    }
    
    handler.GetParentArry = function(id,array){
        var newArry = new Array();
        for (var i in array) {
            if (array[i].parentId == id)
                newArry.push(array[i]);
        }
        return newArry;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值