递归方式拿树结构的子项item的id数据

后台返回的格式
也就是需要处理的树结构数据

[{"name":"xxxxxxx集团","id":"001","items":[{"flag":"false","name":"普通用户岗(分散采购)","id":"8a86a6197ae1cd61017ae1d23f6a0001","items":[]},{"flag":"false","name":"系统管理岗(分散采购)","id":"8a86a6197ae1dea0017ae1ed8a050003","items":[]},{"name":"xxxxxx有限公司","id":"1002","items":[{"flag":"false","name":"项目管理岗(分散采购)","id":"8a86a6197ae1dea0017ae1ed000f0001","items":[]},{"flag":"false","name":"供应商管理岗(分散采购)","id":"8a86a6197ae1dea0017ae1ed4d940002","items":[]}],"disabled":true}],"disabled":true}]

我要拿到子节点的id,使用的是递归的形式
methods方法:
getIds(arr) {
// eslint-disable-next-line array-callback-return
arr.map((item) => {
if (item.items.length >= 1) {
if (item.hasOwnProperty(‘flag’)) {
this.ids.push(item.id);
}
this.getIds(item.items);
} else {
this.ids.push(item.id);
}
});
return this.ids;
},

把我们的树结构传递给这个方法就行了
let a = this.getIds(this.workTree);
console.log(a)
//打印出来的就是子项的item的值了,大家有类似结构的可以稍微改造一下,就可以用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用关联查询和递归查询来返回两个表的树形结构。以下是一种常见的方法: 假设你有两个表,一个是"父表"(Parent Table),另一个是"子表"(Child Table),并且子表有一个指向父表的外键。 你可以使用递归查询来获取树形结构,具体步骤如下: 1. 使用关联查询将父表和子表连接起来,使用外键关系进行连接。 2. 使用递归查询来不断迭代查询子表子项,直到没有更多的子项为止。 以下是一个示例的SQL查询语句,假设父表名为"parent",子表名为"child",父表的主键为"id",子表的外键为"parent_id": ``` WITH RECURSIVE tree AS ( SELECT id, parent_id, name, 0 AS level FROM parent WHERE parent_id IS NULL -- 根节点条件,可以根据实际情况修改 UNION ALL SELECT child.id, child.parent_id, child.name, tree.level + 1 FROM child INNER JOIN tree ON child.parent_id = tree.id ) SELECT id, parent_id, name, level FROM tree ORDER BY level, id; ``` 以上查询语句使用了公共表表达式(CTE)和递归查询(RECURSIVE),它会返回一个包含树形结构的结果集,其包括每个节点的ID、父节点的ID、节点的名称和节点的层级。 请注意,以上只是一个示例,你需要根据你的实际表结构和字段名进行调整。此外,不同的数据库系统可能有稍微不同的语法和特性,你可能需要参考所使用数据库系统的文档来编写相应的查询语句。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值