数组,树,扁平,分组,去重

ArrayService

ArrayService 用于数组与树之间的转化、访问等,一般配合 nz-tree 一起使用。

可以通过全局配置覆盖 ArrayService 设置映射名称。

treeToArr

将树结构转换成数组结构。

参数说明类型默认值
deepMapName深度项名stringdeep
parentMapName扁平后数组的父数据项名stringparent
childrenMapName源数据子项名stringchildren
clearChildren是否移除 children 节点booleantrue
cb转换成数组结构时回调(item: any, parent: any, deep: number) => void-

arrToTree

数组转换成树数据。

parent_id 为字符串,则根值务必为空字符串。

参数说明类型默认值
idMapName编号项名stringid
parentIdMapName父编号项名stringparent_id
rootParentIdValue根父编号值,默认会自动计算得到最合适的根父编号值any-
childrenMapName子项名stringchildren
cb转换成树数据时回调(item: any) => void-

arrToTreeNode

数组转换成 nz-tree 数据源,通过 options 转化项名,也可以使用 options.cb 更高级决定数据项。

参数说明类型默认值
idMapName编号项名stringid
parentIdMapName父编号项名stringparent_id
titleMapName标题项名stringtitle
isLeafMapName是否叶节点项名,若数据源不存在时自动根据 children 值决定是否为叶子节点stringisLeaf
checkedMapname节点 Checkbox 是否选中项名stringchecked
selectedMapname节点本身是否选中项名stringselected
expandedMapname节点是否展开(叶子节点无效)项名stringexpanded
disabledMapname设置是否禁用节点(不可进行任何操作)项名stringdisabled
cb转换成数组结构时回调(item: any, parent: any, deep: number) => void-

visitTree

递归访问整个树。

参数说明类型默认值
childrenMapName子项名stringchildren

findTree

根据条件返回树的第一个值,否则返回 undefined

参数说明类型默认值
childrenMapName子项名stringchildren

getKeysByTreeNode

获取所有已经选中的 key 值。

参数说明类型默认值
includeHalfChecked是否包含半选状态的值booleantrue
keyMapName是否重新指定 key 键名,若不指定表示使用 NzTreeNode.keystring-
cb回调,返回一个值 key 值,优先级高于其他(item: NzTreeNode, parent: NzTreeNode, deep: number) => any-

flat

递归扁平数组。

srv.flat([1, [2, 3, [4, 5, [6]]]]) => [1,2,3,4,5,6]
srv.flat([1, [2, 3, [4, 5, [6]]]], 1) => [1,2,3,[4, 5, [6]]]

groupBy

对数组进行分组。

srv.groupBy([6.1, 4.2, 6.3], Math.floor) => {"4":[4.2],"6":[6.1,6.3]}
srv.groupBy(['one', 'two', 'three'], v => v.length) => {"3":["one","two"],"5":["three"]}

uniq

创建去重后的数组。

uniq([1, 2, 2, 3, 1]) => [1,2,3]
uniq([{ a: 1 }, { a: 1 }, { a: 2 }], 'a') => [{"a":1},{"a":2}]
uniq([{ a: 1 }, { a: 1 }, { a: 2 }], i => (i.a === 1 ? 'a' : 'b')) => [{"a":1},{"a":2}]