递归拼接树形结构【JS小知识】

作者: 前端小野2分类: 计算机技术 发布时间: 2021-11-22 20:29:33 浏览:16729 次

递归拼接树形结构【JS小知识】

我叫十七_:
rootList.reduce((init, nextVal) => { if (!nextVal.parent) { 'children' in nextVal ? '' : (nextVal.children = 【】); init.push(nextVal); } else { init.find(item => item.id === nextVal.parent) 【'children'】.push(nextVal); } return init; }, 【】); [OK]

佐杜的沙丘:
// 输入 [     { id: '1'},{id: '1-1'},{id: '1-2' },{id: '1-3'},{id: '1-2-1'},{id: '1-2-1-1' },     { id: '3-1' },{ id: '4-2-1' }, {  id: '2' }, { id: '2-1' }, { id: '2-2-1' } ]     // 输出   {     '1': {       '1-1': {},       '1-2': {         '1-2-1': {           '1-2-1-1': {}         }       }     },     '2': {       '2-1': {},       '2-2': {         '2-2-1': {}       }     },     '3': {       '3-1':{}     },     '4': {       '4-2': {         '4-2-1': {}       }     }   } 大佬求解这道题怎么做?

小伍先生啊:
老师讲得很好,一路看看老师视频过来的,看了老师的自己又写了另外一种,感谢老师,支持老师 var arr = rootList.reduce((init, nextVal) => { if (nextVal.parent == null) { nextVal.children = 【】 init.push(nextVal); } else { for (item of init) { let itemid = nextVal.id.toString().slice(0, 1) if (item.id == parseInt(itemid)) { item.children.push(nextVal) } } } return init }, 【】);

bili_44392586626:
遍历list的时候,直接调用递归函数,不用返回值接收,看着难受😣,直接i.children=getTreeList(arr,i.id,【】)

布雷诺ttt:
这是二层的树,如果是三层以上树,程序应该怎么优化?

密码菌不是密码君:
次级父节点如果只有一个就遍历不出来了[委屈]

叔叔可以的:
老师请问个问题 for(var) 和 for(let) 变量提升的问题能不能开个视频呢?

暖男不偷猪:
我的一个项目就是这样做的,但是有三层,不用递归好难受啊

小旭x:
如果要加搜索框 搜索对应的节点要怎么做呢

秋雨雨蝴蝶:
问一下,怎么将树形结构生成评级结构!目前真的需要!

黎夜:
有时候后端数据返回的根节点不是统一的。。有的是null 有的是-1,反正就是找不到pid的都是根节点了,这时候这样递归没法实现,用map来做了。

程序员 编程 知识充电站 JAVASCRIPT 面试 前端 VUE WEB前端 打卡挑战

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!