@x-drive/utils v1.1.29
XDrive 工具类
包含常用的类型判断、常用的工具类方法
按需加载
@x-drive/utils 支持基于 babel-plugin-import 的按需加载机制
- 项目中引入 babel-plugin-import,可在package.json的devDependencies中手动加入
 或使用"devDependencies": { "babel-plugin-import": "1.13.3" }npn install babel-plugin-import --save-dev
- 修改 babel.config.js文件中plugins字段,增加模块相关设置
 如是 rollup 等工具中使用则在对应的 babel 设置中添加相应的配置"plugins": [ [ "import" , { "libraryName": "@x-drive/utils" , "libraryDirectory": "dist/libs" , "camel2DashComponentName": false } , "@x-drive/utils" ] ]
数据类型判断
基于 is 扩展出各个数据类型的判断方法,用于各种数据类型的判断场景
is(subject: any, type: string): boolean
数据类型判断
- subject待判断的数据
- type数据类型名字
isArray(subject: any): boolean
是否是数组
- subject待判断的数据
isObject(subject: any): boolean
是否是对象
- subject待判断的数据
isString(subject: any): boolean
是否是字符串
- subject待判断的数据
isNull(subject: any): boolean
是否是 null
- subject待判断的数据
isNumber(subject: any): boolean
是否是数字
- subject待判断的数据
isUndefined(subject: any): boolean
是否 undefined
- subject待判断的数据
isFunction(subject: any): boolean
是否函数
- subject待判断的数据
isBoolean(subject: any): boolean
是否是布尔值
- subject待判断的数据
isError(subject: any): boolean
是否是错误对象
- subject待判断的数据
isRegexp(subject: any): boolean
是否是正则
- subject待判断的数据
isAsyncFunction(subject: any): boolean
是否 async 声明的异步函数
- subject待判断的数据
isSymbol(subject: any): boolean
是否 Symbol
- subject待判断的数据
isExecutable(fn: unknown): boolean
是否是可执行函数
- fn待判断的数据
isValidArray(subject: any): boolean
是否是数组且长度大于0
- subject待判断的数据
常用方法
包含开发过程中遇到的各种与平台无关的函数、正则
labelReplace(tpl: string, data: T, keep?: boolean, remove?: boolean): string
批量替换字符串中带花括号标签为指定数据
- tpl待处理的字符串
- data替换数据
- keep是否保留未能解析的标签
- remove是否同时删除已替换的数据字段
labelReplace('{a}/{b}/c', {a: 1, b: 2}) // 1/2/c
labelReplace('{a}/{b}/c', {a: 1}, true) // 1/{b}/ctoArray(args: any[]): Array
伪数组转成数组
- args伪数组对象
each(data: T[] | object, handler: Function, context?: object): void
通用遍历函数
- data待遍历数据
- handler处理函数
- context作用域
toUnderlineName(str: string): string
转化为蛇形命名
- str待处理的字符串
snakeToCamel(str: string): string
蛇形转小驼峰
- str待处理的字符串
copy(item: T): T
简单复制
- item原始数据
fix0(number: any, size: number): string
格式化数字, 自动补 0
- number要格式化的数字
- size格式化后出来的数字位数
shuffle(arr: T[]): T[]
数组随机分布
- arr原始数组
random(max: number, min: number): number
获取包含指定范围内的随机数
- max最大范围(包含)
- min最小范围(包含,默认 0)
serialize(query: object, encode?: boolean): string
序列化请求参数
- query参数对象
extend(): any
对象扩展方法
- subject待判断的数据
merge(target: object, ...sources: any[]): any
合并
- target合并基准对象
- sources后续合并对象
queryString(dat: object): string
请求参数对象转成请求参数字符串
- dat请求参数
toDate(date: any, offset?: number): any
转换对象为JS Date对象
- date<可选> 日期数据(时间戳, 字符串, Date对象, 空)
- offset修正偏移的秒数
date(date: any, format?: string, offset?: number): string
按照指定格式将日期对象或时间戳转化为日期字符串
- date日期对象或时间戳
- format日期格式
- offset修正偏移的秒数
parseStr(str: string, separator: string = "&", assignment: string | RegExp = "=", ignore: RegExp =^#/, decode: boolean = true): ParseReturn**
解析输入文本,输出带对应 kv 的对象
- str待处理字符串
- separator字符串分割符号
- assignment赋值符号
- ignore需要排除的数据标识
- decode是否执行 decode 操作
throttle(fn: (...args: any[]) => void, delay: number): (...args: any[]) => void
节流
- fn回调函数
- delay延迟时间
cakk<T = any>(origin:Function): T
将某些 js 数据类型上的原始方法转化为可直接调用的函数
- origin需要处理的原始函数
delay(fn: Function, wait: number, ...ext: any[])
延迟一段时间执行方法
- fn执行函数
- wait延迟时间
- ext要传递给延迟执行函数的参数
sleep(time: any, logger: any)
休眠指定时间或随机时间
- time指定时间或随机时间
- logger日志模块
fixFloat0(num: number, size: number): string | number
小数点补充 0 至保留位数
- num待处理的数字
- size保留位数
upCaseFirstChar(str: string): string
首字大写
- str待处理的字符串
ready(timeout?: number): Promise
添加页面可操作后的处理逻辑
- timeout等待超时时间
copyToClipboard(text: string): Promise
复制到剪切板
- text待处理的字符串
toYuan(val: string | number, precision?: number): string | number
分转元(人民币)
- val原始金额
- lv转化等级
- precision保留小数点精度
numberToStrWithRank(val: number, precision?: number, lv?: number[], rank?: string[], konly?: boolean): string
格式化数字为带计数单位的字符串
- val要格式化的数字
- precision要保留的小数点位数
- lv计数单位分界列表
- rank计数单位名称列表
- konly是否只返回第一个等级
正则
labelReplaceExp: RegExp
带花括号标签检测正则
UPPER_CASE_REGEXP: RegExp
大写字母匹配正则
IS_QM_ONLY_REGEXP: RegExp
只有一个问号结尾
FORMAT_REGEXP: RegExp
日期格式化格式匹配正则
DATE_REGEXP: RegExp
时间分割正则
SNAKE_TO_CAMEL_REGEXP: RegExp
蛇形命名匹配正则
数字相关
getNumberWithDec(num: number, dec: number): number
浮点数字精度处理
- num待处理数字
- dec精度
getNumberAverage(arr:number[], dec:number): number
获取一组数组中的平均数
- arr待处理数组
- dec保留精度
getNumberVariance(arr:number[], dec:number): number
获取一组数组中的方差
- arr待处理数组
- dec保留精度
- offset修正偏移的秒数
getStdDeviation(arr:number[], dec:number): number
获取一组数组中的标准差
- arr待处理数组
- dec保留精度
1 year ago
1 year ago
2 years ago
2 years ago
3 years ago
4 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago