Class: Tree

Ycc. Tree

new Ycc.Tree()

树的构造函数 若参数为空,默认创建只有一个根节点的树

Members

$idnumber

节点的自增ID,不允许修改,且每个对象必须唯一

$parentIDnull Ycc.Tree

节点的父节点ID,不允许修改

childrenArray

节点的子节点列表

dataany

节点所携带的数据

Methods

staticYcc.Tree.createByJSON(json){Ycc.Tree}

根据传入的json构造一棵树 若节点有数据必须包含data字段 若节点有子节点必须包含children字段,且为数组 只关注data和children字段,其他字段将忽略
Name Type Description
json object json对象,示例:{data,children}
Returns:
Type Description
Ycc.Tree

staticYcc.Tree.createByNodes(nodes){Ycc.Tree}

根据传入的节点列表构造一棵树 只关注字段id,parentID 构造成功后将生成新的$id,$parentID,且所有字段都将放入data中,包括id和parentID
Name Type Description
nodes Array.<Array> json对象数组
Returns:
Type Description
Ycc.Tree

staticYcc.Tree.getNodeMap(){Object}

获取nodeMap表
Returns:
Type Description
Object

staticYcc.Tree.release(treeNode)

释放当前节点的内存,非递归
Name Type Description
treeNode

addChildTree(tree)

添加一颗子树
Name Type Description
tree

getBrotherList(){Array.<Ycc.Tree>}

获取节点的所有兄弟节点,包括自身
Returns:
Type Description
Array.<Ycc.Tree>

getDepth(){number}

获取树的深度
Returns:
Type Description
number

getNodeListGroupByLayer(){Object}

获取节点列表按照层级的分类 key为层级,val为Ycc.Tree列表
Returns:
Type Description
Object

getNodeMap(){Object}

获取nodeMap表
Returns:
Type Description
Object
获取父级
Returns:
Type Description
Ycc.Tree

getParentList(){Array.<Ycc.Tree>}

获取节点的所有父级,靠近节点的父级排序在后
Returns:
Type Description
Array.<Ycc.Tree>

itor(option){Object}

树的迭代器,返回集中常用的迭代方法
Name Type Description
option 遍历时的配置项
Name Type Description
reverse 遍历子节点时,是否将子节点反向,默认false,目前仅支持depthDown遍历
Returns:
Type Description
Object

removeChildTree(tree){*}

删除一颗子树,只能删除直接子节点
Name Type Description
tree
Returns:
Type Description
*

toNodeList(){Array.<Ycc.Tree>}

转化为节点列表
Returns:
Type Description
Array.<Ycc.Tree>