JS树结构转list结构
Posted 秋夜雨巷
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS树结构转list结构相关的知识,希望对你有一定的参考价值。
树转list
/** * 树转list */ function treeToList(tree){ for(var i in tree){ var node = tree[i]; list = []; //结果lsit if (node.children.length !== 0) { //遍历树的第一层,只有一个根结点 //第一层加入到list中,因为根结点模块设置为虚拟结点,所以不用加入 /*list.push({ id: node.id, name: node.title, parentId:node.parentId });*/ toListDF(node.children, list, node.id); //遍历子树,并加入到list中. } } return list; } /** * 深度优先遍历树 * 一个递归方法 * @params tree:要转换的树结构数据 * @params list:保存结果的列表结构数据,初始传list = [] * @params parentId:当前遍历节点的父级节点id,初始为null(因为根节点无parentId) **/ function toListDF (tree, list, parentId) { for (var i in tree) { //遍历最上层 //将当前树放入list中 var node = tree[i]; list.push({ id: node.id, name: node.title, parentId:parentId }); //如果有子结点,再遍历子结点 if (node.children.length !== 0) { toListDF(node.children, list, node.id) //递归 } } }
以上是关于JS树结构转list结构的主要内容,如果未能解决你的问题,请参考以下文章