递归形成树形结构,去除树结构里面的空children数组

首先看一下数据:长这个样子
在这里插入图片描述
然后后端做一下处理:

	@Overridepublic List getDicData(Integer parentId) { //从哪一层开始遍历做展示,这里选取根节点,即是:0LambdaQueryWrapper<BusOpenType> wrapper = new LambdaQueryWrapper<>();wrapper.eq(BusOpenType::getParentId, parentId);// 查找出含有此根节点的数据作为第一层List<BusOpenType> list = busOpenTypeMapper.selectList(wrapper);//遍历for (BusOpenType type : list) {//如果获取到的父节点 !=null,即进递归if (type.getParentId() != null) {List<BusOpenType> openTypes = getDicData(type.getId());//取出的数据作为childrentype.setChildren(openTypes);}}//返回return list;}

返回的数据长这样:
在这里插入图片描述
此时已经是前端可以接收的数据了,但是如果不加处理,结果长成这样:
在这里插入图片描述
当选取到最后一层时,后面还会有个空[],导致我们无法选取,这显然不太合理。
所以我们在前端写个方法稍稍处理一下:

// 去除空children
function deleteChildren(arr) {let childs = arrfor (let i = childs.length; i--; i > 0) {if (childs[i].children) {if (childs[i].children.length) {deleteChildren(childs[i].children)} else {delete childs[i].children}}}return arr}

再引进我们调用的接口中,此时空children就被删除了,看下返回的数据

在这里插入图片描述

回到页面,此时结果已经满足需求。
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部