首页 > 其他分享 >将一个多维数组整合成树形结构,可以通过递归函数来实现

将一个多维数组整合成树形结构,可以通过递归函数来实现

时间:2023-03-27 09:23:26浏览次数:37  
标签:arr 递归函数 tree item 树形 let parentId 多维 children

function buildTree(arr, parentId = null) {
  let tree = [];
  for (let i = 0; i < arr.length; i++) {
    let item = arr[i];
    if (item.parentId === parentId) {
      let children = buildTree(arr, item.id);
      if (children.length) {
        item.children = children;
      }
      tree.push(item);
    }
  }
  return tree;
}

  

标签:arr,递归函数,tree,item,树形,let,parentId,多维,children
From: https://www.cnblogs.com/chenlw/p/17260362.html

相关文章

  • Gorm 实现无限树形菜单
    原文链接:https://www.zhoubotong.site/post/91.html通常树形菜单的实现基本就是递归调用,大部分场景毕竟这种数据不多,性能倒是并不突出,下面给个demo,有兴趣的朋友可以看......
  • 多维数组
                 ......
  • 树形表的标记字段是什么?如何查询树形表?
    树形表的标记字段是什么是parentID即父节点的id如何查询树形表当层级固定的时候可以用表的自连接查询select one.idone_id, one.labelone_label, two.idtwo_i......
  • 将数据转换为树形结构格式
    addarrdata(data){   if(!Array.isArray(data)){//验证data是不是数组类型    return[]   }   data.forEach(item=>{    ......
  • 浅谈树形dp和优化
    树是一个由\(n\)个节点\(n-1\)条边所组成的无向无环连通图。由于每个节点只有一个父亲,可以消除在具体求解中的后效性。一般情况下,我们会采用dfs的方式一边遍历树一边......
  • Closure Table如何将树形结构存储在数据库中
    今天介绍将树形结构存储在数据库中的第三种方法——闭包表ClosureTable继续用上一篇的栗子,下面是要存储的结构图:需要回答的问题依旧是这样几个:1.查询小天的直......
  • 树形dp注意事项
    1.树形dp的for循坏能优化就优化,比如取j=min(size[x],m),k<=min(size[x],m)之类的,否则很容易TLE2.要考虑清楚不合法状态是否会对答案产生影响,如果有就要memset(dp,-1,s......
  • 递归函数
    递归函数目录递归函数1.什么是递归函数2、递归函数有啥优缺点3、通过实例来介绍函数递归:1.什么是递归函数​ 在函数内部,可以调用其他函数,如果一个函数在内部调用自......
  • HJ61放苹果_动态规划,递归——需要使用判断避免递归出界。注意多维数组的建立和append(
      1importsys2m,n=list(map(int,sys.stdin.readline().strip().split()))3#defapple(m,n):4#returndp,dp[m][n]5ifm<n:6m,n=m,m7d......
  • 「树形DP」叶子的染色
    本题为3月15日23上半学期集训每日一题中B题的题解题面题目描述给一棵有m个节点的无根树,你可以选择一个度数大于1的节点作为根,然后给一些节点(根、内部节点、叶子均可)着......