数据处理相关方法

预计阅读时间: 2 分钟

getArray

参数归一化为数组

类型声明

1function getArray<T>(value: T): T extends any[] ? T : T[];

参数

必填参数说明类型默认值
value数组any

返回值: array

示例

1import { getArray } from '@cmtlyt/base';
2// import { getArray } from '@cmtlyt/base/utils/dataHandler';
3
4const arr = getArray(1);
5console.log(arr); // [1]
6console.log(getArray([2])); // [2]
7console.log(getArray()); // []
8console.log(getArray({ a: 1 })); // [{ a: 1 }]

getArraySlice

获取数组切片

类型声明

1function getArraySlice<T extends any[]>(array: T, size: number): T[];

参数

必填参数说明类型默认值
*array数组any[]
size切片大小number

返回值: array

示例

1import { getArraySlice } from '@cmtlyt/base';
2// import { getArraySlice } from '@cmtlyt/base/utils/dataHandler';
3
4const arr = getArraySlice([1, 2, 3, 4, 5], 2);
5console.log(arr); // [[1, 2], [3, 4], [5]]
6console.log(getArraySlice([1, 2, 3, 4, 5], 3)); // [[1, 2, 3], [4, 5]]
7console.log(getArraySlice([1, 2, 3, 4, 5], 6)); // [[1, 2, 3, 4, 5]]

deepClone

深拷贝

类型声明

1function deepClone<T>(obj: T): T;

参数

必填参数说明类型默认值
obj任意值T

返回值: T

示例

1import { deepClone } from '@cmtlyt/base';
2// import { deepClone } from '@cmtlyt/base/utils/dataHandler';
3
4const obj = {
5  a: 1,
6  b: {
7    c: 2,
8  },
9};
10const obj2 = deepClone(obj);
11obj2.a = 2;
12obj2.b.c = 3;
13console.log(obj.a); // 1
14console.log(obj.b.c); // 2

merge

合并对象

类型声明

1export declare function merge<T>(target: T, ...source: any[]): T;

参数

必填参数说明类型默认值
*target合并的目标T
...source合并数据来源any[]

返回值: T

示例

1import { merge } from '@cmtlyt/base';
2// import { merge } from '@cmtlyt/base/utils/dataHandler';
3
4const obj = {
5  a: 1,
6  b: {
7    c: 2,
8  },
9};
10const obj2 = merge(obj, {
11  a: 2,
12  b: {
13    c: 3,
14  },
15});
16console.log(obj2.a); // 2
17console.log(obj2.b.c); // 3
18console.log(obj === obj2); // true

cloneMerge

深拷贝合并对象

类型声明

1export declare function cloneMerge<T>(target: T, ...source: any[]): T;

参数

必填参数说明类型默认值
*target合并的目标T
...source合并数据来源any[]

返回值: T

示例

1import { cloneMerge } from '@cmtlyt/base';
2// import { cloneMerge } from '@cmtlyt/base/utils/dataHandler';
3
4const obj = {
5  a: 1,
6  b: {
7    c: 2,
8  },
9};
10const obj2 = cloneMerge(obj, {
11  a: 2,
12  b: {
13    c: 3,
14  },
15});
16console.log(obj2.a); // 2
17console.log(obj2.b.c); // 3
18console.log(obj === obj2); // false

asyncReplace

异步替换

类型声明

1function asyncReplace(
2  str: string,
3  pattern: string | RegExp,
4  replacer: ((match: string, ...args: any[]) => Promise<string> | string) | string,
5): Promise<string>;

参数

必填参数说明类型默认值
*str字符串string-
*pattern正则string|RegExp-
*replacer替换函数(match: string, ...args: any[]) => Promise | string-

返回值: Promise<string>

示例

1import { asyncReplace } from '@cmtlyt/base';
2// import { asyncReplace } from '@cmtlyt/base/utils/dataHandler'
3
4asyncReplace('hello world', 'world', async (match) => {
5  return '@cmtlyt/base';
6}); // hello @cmtlyt/base

asyncFilter

异步过滤

类型声明

1function asyncFilter<T>(arr: T[], predicate: (item: T, index: number) => Promise<boolean> | boolean): Promise<T[]>;

参数

必填参数说明类型默认值
*arr数组T[]-
*predicate过滤函数(item: T, index: number) => Promise | boolean-

返回值: Promise<T[]>

示例

1import { asyncFilter } from '@cmtlyt/base';
2// import { asyncFilter } from '@cmtlyt/base/utils/dataHandler'
3
4asyncFilter([1, 2, 3, 4, 5], async (item) => {
5  return item > 2;
6}); // Promise<[3, 4, 5]>