@shencom/utils-array
v1.1.0
Published
数组相关工具方法
Downloads
41
Readme
@shencom/utils-array
数组相关工具方法
Install
pnpm add @shencom/utils
# or
pnpm add @shencom/utils-array
Basic Usage
import { ArrayToObject, ToArray } from '@shencom/utils';
// import { ArrayToObject, ToArray } from '@shencom/utils-array';
Methods
ToArray
- 说明: 转数组
- 类型:
(val?: Nullable<Arrayable<T>>): Array<T>
- 参数:
val
- 值
- 示例:
ToArray('1'); // ['1'] ToArray([1]); // [1] ToArray(null); // [] ToArray(undefined); // [] ToArray(true); // [true] ToArray(false); // [false] ToArray(''); // ['']
ArrayToObject
说明: 数组转对象
类型:
(list: T[], key: string): Record<string, T[]>
参数:
list
- 数据列表key
- 指定使用字段作为 key
示例:
arr.ArrayToObject([], ''); // {} const data = [ { id: 1, b: 11 }, { id: 4, b: 44, c: 444 }, ]; arr.ArrayToObject(data, 'id'); /* { '1': [{ id: 1, b: 11 }], '4': [{ id: 4, b: 44, c: 444 }], } */ arr.ArrayToObject(data, 'cc'); /* { '444': [{ id: 4, b: 44, c: 444 }], undefined: [{ id: 1, b: 11 }], }; */
ArrayFlatten
- 说明: 扁平化数组
- 类型:
(array?: Nullable<Arrayable<T | Array<T>>>, depth?: number): Array<T>
- 参数:
array
- 多维数组depth
- 最大递归深度,默认:1
- 示例:
ArrayFlatten([]); // [] ArrayFlatten([1]); // [1] ArrayFlatten([1, [2]]); // [1, 2] ArrayFlatten([1, [2], [3]]); // [1, 2, 3] ArrayFlatten([1, [2, [3]]]); // [1, 2, [3]] ArrayFlatten([1, [2, [3]]], 2); // [1, 2, 3]
ArrayToTree
- 说明: 数组转树
- 类型:
(arr: T, options?: ArrayToTreeMaps<C>): Tree<T>
- 参数:
arr
- 数组数据depth
- 最大递归深度,默认:1
- 示例:
const arr1 = [ { id: '1', pid: '0' }, { id: '1-1', pid: '1' }, { id: '1-2', pid: '1' }, { id: '1-1-1', pid: '1-1' }, ]; const tree1 = [ { id: '1', pid: '0', children: [ { id: '1-1', pid: '1', children: [{ id: '1-1-1', pid: '1-1' }], }, { id: '1-2', pid: '1', }, ], }, ]; const res = arr.ArrayToTree(arr1);
ArrayKeyMap
- 说明: 对数组中每一项的进行映射
- 类型:
(array: T, maps: P): Unfurl<Mutable<Res>>[]
- 参数:
array
- 数组maps
- 映射关系
- 示例:
const arr = [ { a: '1', b: true, c: 3 }, { a: '2', b: false, c: 4 }, ]; const res = ArrayKeyMap(arr, { aa: 'a', bb: 'b' } as const); // res = [ // { aa: '1', bb: true, c: 3 }, // { aa: '2', bb: false, c: 4 }, // ];