st-common-core
Version:
小尾巴前端通用核心库
39 lines (38 loc) • 2.61 kB
TypeScript
/**
* 将数组转化为树形结构数组,在转化后的树形结构的数组中,子级元素会被添加到父级元素的 children 属性中,children 属性是一个数组类型
*
* @param {any[]} origin 原数组
* @param {string} primaryFieldName 数组中元素的主键字段名
* @param {string} parentFieldName 数组中元素用于表示其父级元素的字段名
* @param {boolean} isPath 是否需要生成从根节点到当前子级节点的路径,默认为 false,生成的路径是由当前子级节点的主键值加上父级节点的主键值
* 组成的数组,如果当前节点为根节点,则路径为空数组
* @param {string} pathFieldName 需要生成从根节点到当前子级节点的路径时,用于存储路径数据的字段名,默认为 'path'
* @returns {{tree: Array<any & { children: any[] }>, map: Record<any, any & { children: any[] }>}} 树形结构数组和映射表组成
* 的对象,其中 tree 为树形结构数组,map 为映射表,映射表的 key 为数组元素的主键值,映射表的 value 为数组元素
*/
export declare const convert2Tree: (origin: any[], primaryFieldName: string, parentFieldName: string, isPath?: boolean, pathFieldName?: string) => {
tree: Array<any & {
children: any[];
}>;
map: Record<any, any & {
children: any[];
}>;
};
/**
* 将数组转化为映射表
*
* @param {any[]} origin 原数组
* @param {string | ((item: any) => (string | number | symbol))} primaryFieldName 数组元素的主键字段名,数组转化为映射表时,数组
* 元素的主键字段值将会作为映射表的 key,映射表的 key 需要的类型为 `string | number | symbol`,如果传入的是字符串数据作为参数,则该参数为
* 数组元素的主键字段名,如果传入的是函数类型作为参数,则该函数将会接收当前正在遍历处理的数组元素作为参数,该函数需要返回该元素在映射表中 key
* @returns {Record<string | number | symbol, any>} 数组转化后的映射表
*/
export declare const convert2Map: (origin: any[], primaryFieldName: string | ((item: any) => string | number | symbol)) => Record<(string | number | symbol), any>;
/**
* 将树形结构数组扁平化为一维数组
*
* @param {Array<any>} tree 树形结构数组
* @param {string} childrenFieldName 树形结构数组中父节点中存放子节点的字段名,默认为 'children'
* @returns {Array<any>} 扁平化后的一维数组
*/
export declare const flattenTree: (tree: Array<any>, childrenFieldName?: string) => Array<any>;