生成树结构数据
Posted 冷闲欧巴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成树结构数据相关的知识,希望对你有一定的参考价值。
/** * 构造树型结构数据 * @param * data 数据源 * @param * id id字段 默认 \'id\' * @param * parentId 父节点字段 默认 \'parentId\' * @param * children 孩子节点字段 默认 \'children\' */ export function handleTree(data, id, parentId, children) let config = id: id || \'id\', parentId: parentId || \'parentId\', childrenList: children || \'children\' ; var childrenListMap = ; var nodeIds = ; var tree = []; for (let d of data) let parentId = d[config.parentId]; if (childrenListMap[parentId] == null) childrenListMap[parentId] = []; nodeIds[d[config.id]] = d; childrenListMap[parentId].push(d); for (let d of data) let parentId = d[config.parentId]; if (nodeIds[parentId] == null) tree.push(d); for (let t of tree) adaptToChildrenList(t); function adaptToChildrenList(o) if (childrenListMap[o[config.id]] !== null) o[config.childrenList] = childrenListMap[o[config.id]]; if (o[config.childrenList]) for (let c of o[config.childrenList]) adaptToChildrenList(c); return tree;
以上是关于生成树结构数据的主要内容,如果未能解决你的问题,请参考以下文章