function listToTree(list, parent) { let tree = []; list.forEach(item => { if (item.parentId === parent) { let children = listToTree(list, item.id); // 递归查找子节点 if (children.length) { item.children = children; } tree.push(item); } }); return tree; } 二、使用哈希表...
function listToTree(list) { const map = {}; const roots = []; // 构建 id 到 list item 的映射 list.forEach(item => { map[item.id] = { ...item, children: [] }; }); list.forEach(item => { const parent = map[item.parentId]; if (parent) { // 有父节点,添加到父节点的...
JavaScript中列表转成树结构 //列表转树结构list_to_tree() { let a=[ { id:3, name:'测试3', up_id:2, }, { id:2, name:'测试2', up_id:1, }, { id:1, name:'测试1', up_id:null, }, ] let toTree= data =>{ let result=[]if(!Array.isArray(data)) {returnresult } let...
name: 'Node 1.1.1' }, ]; const tree = listToTree(list);
})returnlist.filter((node) =>!node[pid]) }consttreeNode =listToTree(list,'id','pid') 当然了,处理数据很简单,但是如果当你的后端不处理的话,一定要无情地怼回去,前端最好还是只展示数据,最好不要在浏览器处理一些逻辑 情景二 遍历树 给树中节点添加属性 ...
public static function listToTree($list, $pid = 0) { $arr = []; foreach ($list as $v) { if ($v['pid'] == $pid) { $v['chile'] = self::listToTree($list, $v['id']); $arr[] = $v; } } return $arr; }
node.children && treeToList(node.children, result, level) }) return result } // 循环实现 function treeToList (tree) { let node, result = tree.map(node => (node.level = 1, node)) for (let i = 0; i < result.length; i++) { ...
const tree = ListToTree(List) console.log(JSON.stringify(tree)) 上面代码直接扔到浏览器中即可运行,可自行看看结果。这里先把结果放在下面,供参考。 [{"id":0,"name":"root","parentId":null,"children":[{"id":1,"name":"child1","parentId":0,"children":[{"id":5,"name":"child1_2",...
javascriptCopy code const list = [ { id: 1, name: '节点1', parentId: null }, { id...
在上面的代码中,tree是一个代表组织结构的对象。每个节点都有一个name属性来表示该节点的名称和一个children数组来表示其子节点。 2. 创建转换函数 我们需要创建一个函数来遍历树,并将节点转换为列表。函数将接受树的根节点和一个列表作为参数。 functionconvertTreeToList(treeNode,list=[]){// 将当前节点的名称...