https://github.com/guanruihua/rh-js-methods
工具方法
https://github.com/guanruihua/rh-js-methods
javascript method npm typescript
Last synced: about 1 month ago
JSON representation
工具方法
- Host: GitHub
- URL: https://github.com/guanruihua/rh-js-methods
- Owner: guanruihua
- Created: 2021-11-02T15:44:13.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-11-26T14:45:54.000Z (about 3 years ago)
- Last Synced: 2024-04-18T13:26:02.117Z (almost 2 years ago)
- Topics: javascript, method, npm, typescript
- Language: TypeScript
- Homepage:
- Size: 588 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 描述
- **当前包改名为 abandonjs**
- 常用方法的封装
## 使用
```shell
npm install rh-js-methods
```
```js
import { filter } from 'rh-js-methods'
```
## array
### `filter`
- `description` 单层过滤
- `param` `list` `T[]` 待过滤数组
- `param` `filterConditions` { `[key:string]:` `number|` `string` | `RegExp` } 过滤条件
- `param` `retainNotObject` 是否保留非对象项
- `returns` `T[]`
### `flat`
- `description` 数组扁平化
- `param` `list` {`Array`}
- `param` `depth` {`?number` = `1`} 深度
- `returns` `Array`
- `version:` `2.2.0`
### `isArray`
- `description` 是否为数组
- `param` `value` `any`
- `returns` `boolean`
### `selects`
- `description` 指定范围 来随机选择数组元素
- `param` `list:` `T[]`
- `param` `min:` `number`
- `param` `max:` `number` (包括)
- `returns` `T[]`
### `select`
- `description` 选择数组其中一项, 不指定就随机选一
- `param` `list` `T[]` 待选择数组
- `param` `index` `?number` 指定选择索引(可为负数)
- `returns` `T|null` 选择项
### `toArray`
- `description` 将非数组转换为数组
- `param` `value` `T` | `T[]`
- `returns` `T[]`
### `pick`
- `description` 从数组中取任意 一个 元素
- `param` `any[]` `list`
- `returns` 数组中任意一个
### `unique`
- `description` 去除数组重复项
- `param` `T[]` `list` 待过滤数组
- `returns` `T[]`
### `chunk`
- `description` 通过 `size` 切割数组
- `param` `list` `T[]`
- `param` `size` `number` 切割点索引
- `returns` `T[][]` [ [切割点前数据], [切割点后数据] ]
### `concat`
- `description` 连接多个数组
- `params` `...list` `any[][]` 多个数组
- `returns` `any[]`
### `drop`
- `description` 去除前`n`个元素
- `param` `T[]` `list` 数组
- `param` `number` `n`=`0` 要去除元素个数
- `returns` `T[]` `list` 剩余切片
### `dropRight`
- `description` 从右往左删除的指定个数
- `param` `list` `T[]` 要处理的数组
- `param` `n`=`1` 需要删除的元素数量
- `returns` `T[]`
### `fill`
- `description` 在原有数组上改变, 修改指定位置的值
- `param` `array` `T[]` 待填充改变的数组
- `param` `value` `T` 填充值
- `param` `num` 填充个数
- `returns`
### `difference`
- `description` 过滤数组
- `param` `list` `T[]` 待过滤的数组
- `param` `...filterConditions:T[]` 过滤使用的条件
- `returns` `T[]` 过滤后的数组`(new)`
### `zip`
- `description:` 创建一个分组元素的数组,数组的第一个元素包含所有给定数组的第一个元素,数组的第二个元素包含所有给定数组的第二个元素,以此类推
- `version:` `2.1.11`
- `param` `arrays` : `...any[]`
- `returns` `any[]`
## color
### `isHexColor`
- `description` 判断是否为颜色字符串或数字
- `param` `hex` `string` 三位/六位的十六进制的颜色
- `returns` `boolean`
### `toRGB`
- `description` `16`进制颜色转`RGB`/`RGBA`字符串
- `param` `val` `16`进制颜色
- `param` `?opa` 透明度
- `returns` `string`
## event
- `description` 绑定事件
- `param` `name` 事件名称
- `param` `fn` 待触发事件
- `param` `name` 移除事件的名称
- `description` 触发后就移除当前事件
- `param` `name` 待触发事件的名称
- `param` `args` 触发事件的参数
- `param` `name` 待触发事件的名称
- `param` `args` 触发事件的参数
### `EventEmitter`
- `description` 简易观察者模式
## function
### `toPromise`
- `description` 将方法或值转换为`Promise`对象, 若传输`values`切`target`为`function`, 就会返回执行结果
- `param` `target` `any`
- `param` `...values` `?any[]`
- `returns` `Promise`
### `isArray`
- `description` 是否为数组
- `param` `value` `any`
- `returns` `boolean`
### `once`
- `description` `fn` 方法只会执行一次
- `param` `fn` 指定值运行一次的方法
- `returns` 返回封装后的方法
### `throttle`
- `description` 节流: 用于限制函数触发频率, 每个`delay`时间间隔,最多只能执行函数一次
- `param` `fn` `function` 待处理函数
- `param` `interval` `number` 间隔
- `returns` `func`
### `debounce`
- `description`
- 防抖: 时间内只会执行一次 可以减少函数触发的频率
- 当函数触发时,使用一个定时器延迟执行操作。
- 当函数被再次触发时,清除已设置的定时器,重新设置定时器。
- 如果上一次的延迟操作还未执行,则会被清除。
- `param` `fn` `function`
- `param` `interval` `number`
- `returns`
### `after`
- `description` 调用`n`次后才触发`func`
- `param` `n` 调用后多少次才执行
- `param` `func` 限定的函数
- `returns` 新的限定函数
### `ary`
- `description` 调用`func`最多接受`n`个参数
- `param` `func` 限定函数
- `param` `n` 限制参数数量
- `returns` 新的覆盖函数
### `before`
- `description` 调用`n`次后,再调用就会返回最后一次调用的结果
- `param` `n` 超过`n`次不再调用
- `param` `func` 限定函数
- `returns` 新的限定函数
### `bind`
- `description` `thisArg`绑定`func`的`this`,并且`func`会接收`partials`附加参数
- `param` `func` 绑定的函数
- `param` `thisArg` 绑定的对象
- `param` `partials` 附加的部分参数
- `returns` 新的绑定函数
### `curry`
- `description` 柯里化
- `param` `func` 待柯里化函数
- `param` `len` 待柯里化参数个数
- `returns` 柯里化函数
### `delay`
- `param` `func` 指定函数
- `param` `delayTime` 延迟时间
- `param` `args` 传输参数
- `returns` `func`执行结果`(Promise)`
### `flip`
- `param` `func` 要翻转参数的函数
- `param` `args` 反转参数
- `returns`
### `loop`
- `description:` 指定次数遍历
- `param` `length` : `number`
- `param` `callback` : `(index:` `number)` => `true` | `void`
- `returns` `number`
### `loops`
- `description:` 指定次数遍历
- `param` `length` : `number[]`
- `param` `callback` : `(index:` `number)` => `true` | `void`
- `returns` `number`
### `loops`
- `description:` 数组遍历
- `version:` `2.1.11`
- `param` `arrays`
- `param` `callback`
- `returns` `number`
## math
- 无限大(小)当做 `js` `Number` 的最大(小)值[主要处理计算异常的问题, 二期再加入大位数处理]
- 二期再加入大位数计算
### `HEX`
- `description` 将数字装换成需要装换的数据格式`(k`, `m`, `g`, `t`, `p`, `e`, `z`, `y`, `b)`
- `param` `num` `(number|string)` 待转换的数子 `(
## number
### `isFloat`
- `description` 判断数是否为浮点型
- `param` `num` 待检测的数据类型
- `returns` `boolean`
### `isNumber`
- `description` 是否为数字
- `support:` `Number`, `NumberString`
- `unsupported:` `Infinity`, `Function`
- `param` `value` `any`
- `returns` `boolean`
- `update:` `2.2.0`
### `random`
- `description` 随机数
- `param` `lower` { `number` } 下限
- `param` `upper` { `number` } 上限
- `param` `floating` { `number` = `0` } 是否返回浮点数(位数), `0:` 整数
### `spLength`
- `description` 指定长度
- `param` `value` `any`
- `param` `min` = `0`
- `param` `max` `number`
- `returns` `string`
### `isEffectNumber`
- `description` 是否为`js`的有效区间的数, 非`number`类型都为`false`
- `param` `num` `any`
- `returns` `boolean`
### `toNumber`
- `description` 将值转换为`Number`, 不可以正确装换的值, 均返回`0`
- `param` `value` `any` 待转换的数值
- `returns` `number`
### `toFloat`
- `description` 转换为指定位数的浮点数
- `param` `num` { `number` } 数字
- `param` `fixed` { `number` } 小数点位数
- `returns` { `number` }
### `getDecimal`
- `description` 获取小数点位数
- `param` `num` { `number` }
- `returns` { `number`=`0` }
### `clamp`
- `description` 限制在`lower`和`upper`之间
- `param` `num` 待限制的值
- `param` `lower` 下限
- `param` `upper` 上限
- `returns` 返回被限制的值
### `inRange`
- `description` 判断是否在该范围
- `param` `num` 要检查的值
- `param` `start`=`0` 开始范围
- `param` `end` 结束范围(包含该值)
- `returns` `boolean`
### `between`
- `description` 判断值是否在两值之间
- `param` `num` `number` 待判断值
- `param` `start`=`0` 起始值
- `param` `end` `number` 结束值(不包含该值)
- `returns` `boolean`
### `round`
- `description`数字四舍五入,保留`n`位小数
- `param` `number` `number` 待处理数值
- `param` `n` `number` = `0` 四舍五入的位数
- `returns`
### `toThousands`
- `description` 数字每千位加逗号
- `param` `num` `string|number`
- `returns` `string`
## object
### `existKeys`
- `description` 判断对象是否拥有指定`keys`
- `param` `obj` `object`
- `param` `keys` `string[]` | `string`
- `returns` `boolean`
### `isObject`
- `description` 判断是否为`Object`
- `param` `value`
- `returns` `boolean`
### `serialize`
- `description` 序列化对象
- `param` `query` `object`
- `param` `encode` `boolean` = `false`
- `returns` `string`
### `omitRecord` = `Record>`
- `description` 忽略`object`属性
- `param` `record` `T`
- `param` `propertys` `string[]`
- `returns` `T`
## string
### `hide`
- `description` 隐藏指定位置的字符
- `param` `target` 待替换子串
- `param` `start` = `0` 开始位置
- `param` `end` = `target.length`
- `returns` `string`
### `replaces`
- `description` 同时定义多个`replace`的规则使用
- `param` `target` `string`
- `param` `regs` { `reg:` `RegExp` | `string`, `value:` `string` }`[]`
- `returns` `string`
### `isString`
- `description` 是否为字符串
- `param` `val` `any`
- `returns` `boolean`
### `reverseString`
- `description` 反转字符串
- `param` `target` `string`
- `return` `string`
### `isJsonString`
- `description` 判断是否为`json`字符串, 若是并返回处理后的对象
- `param` `val` 待判断字符串
- `returns` `T` | `false`
### `toString`
- `description` 转换为字符串
- `param` `value` `any`
- `returns` `string`
### `toStrings`
- `description` 转换为字符串数组
- `param` `value` `any[]`
- `returns` `string[]`
## time
### `toDate`
- `description` 字符串装换成`Date`对象
- `param` `value` `string` 可以转换成时间的字符串
- `returns` {`Date`}
### `deadline`
- `description` 倒计时
- `param` `target:Date` 目标时间
- `param` `timeKey?:` '`year`' | '`mouth`' | '`day`' | '`hour`' | '`minute`' | '`second`' | '`timeStamp`' 指定倒计时单位
- `param` `now?:Date` 起始时间
- `returns` {`number`}
### `isDate`
- `description` 检查日期是否有效, 时间戳也为有效时间`(13`位)
- `param` `date:any` 待判断日期
- `returns` `boolean`
### `format`
- `description` 时间格式化
- `param` `time:number|string|Date` 时间
- `param` `pattern?:string` 格式
- `returns` `string` 格式化后的数据
| 符号 | 结果| 描述 |
| :----| :----| :----|
| `YYYY` | `2022` | `4`位数字的年份, 忽略大小写 |
| `YY` | `1`-`14` | `2` 位数字的年份, 忽略大小写 |
| `M` `MM` | `1`-`12` | 月份数字 |
| `D` `DD` | `1`-`31` | 日数, 忽略大小写 |
| `H` `HH` | `0`-`23` | `24` 小时制 |
| `h` `hh` | `1`-`12` | `12` 小时制 |
| `m` `mm` | `0`-`59` | 分钟|
| `s` `ss` | `0`-`59` | 秒钟|
### `isSameDate`
- `description` 时间是否相同, 时间类型支持`isDate`的类型
- `param` `timeA` 比较时间
- `param` `timeB` 被比较时间
- `returns` {`boolean`}
## util
### `BanConfig`
- `name:` `timeout`
- `description` 超时时间
- `default` `3000`
- `name:` `count`
- `description` 最大执行次数
- `default:` `1000000`
### `ban`
- `description` 限制 方法的超时和执行次数
- `param` `func` `Func`
- `param` `config` `BanConfig`
- `returns` `function` `(...args:` `Params):` `Return`
### `asyncBan`
- `param` `func` `AsyncFunc`
- `param` `config` `BanConfig`
- `returns` `function` `(...args:` `Params):` `Return`
### `catchError`
- `param` `func` `Func`
- `param` `errorReturnValue` `Return`
- `returns` `function` `(...args:` `Params):` `Return`
### `asyncCatchError`
- `param` `func` `AsyncFunc`
- `param` `errorReturnValue` `Return`
- `returns` `async` `function` `(...args:` `Params):` `Return`
### `throwError<`
- `param` `func:` `(...args:` `Params)` => `R` 待捕获错误的函数
- `param` `isErrorResult` : `R`
- `returns` `(...args:Params)`=`>R`
### `asyncThrowError<`
- `description` 异步处理
- `param` `func:` `(...args:` `Params)` => `R` 待捕获错误的函数
- `param` `isErrorResult` : `R`
- `returns` `(...args:Params)`=`>R`
### `changeCase`
- `description` 字符转换
- `type:` `FirstUpper:`首字母大写 `FirstLower`:首字母小写 `Upper`:全部大写 `Lower`:全部小写
- `param` `str` `string`
- `param` `type` `number`
- `returns` `string`
### `isEmpty`
- `description` 判断是否为无效值 `undefined` , `null`, `NaN`
- `param` `value` `any` 待判断值
- `returns` `boolean`
### `runFunc`
- `description` 运行函数, 支持普通函数和`async`函数, 否则返回`func`
- `param` `func`
- `param` `...args`
- `returns`
### `IsEndOfStrings`
- `description` 是否为指定字符串结尾
- `param` `fileName` `string`
- `param` `list` `string[]`
- `returns` `boolean`
### `isImage`
- `param` `fileName` `string`
- `returns` `boolean`
### `isH5Videos`
- `param` `fileName` `string`
- `returns` `boolean`
### `isPdf`
- `param` `fileName` `string`
- `returns` `boolean`
### `isWord`
- `param` `fileName` `string`
- `returns` `boolean`
### `siExcel`
- `param` `fileName` `string`
- `returns` `boolean`
### `logGroup`
- `description` 分组打印(简化`console.groupCollapsed)`
- `param` { `string` } `name` 分组名称
- `param` { `unknown[]` } `...args` 需要分组打印的结果
- `example` `logGroup(name[`, `...args])`
- `return` `boolean`
### `matchValue`
- `param` `val` 被比较值
- `param` `valer` 比较值 / 可为正则
- `param` `path` 值的路径 用逗号隔开
- `returns` `boolean`
### `equal`
- `description` 比较是否值和类型是否相等
- `param` `value` `any`
- `param` `lastValue` `any`
- `returns`
### `toPathValue`
- `description` 通过`path` 来获取值
- `param` `val` 待取值
- `param` `path` `string` 路径 (若路径有`.` 可用`\\.`代替)
- `returns` 通过路径获取对应值
### `type`
- `description` 获取类型
- `param` `any` 参数
- `return` `string` 类型名称
### `types`
- `description` 获取类型数组
- `param` `params` `any[]` 待判断的参数列表
- `param` `hasRepeat`=`false` 保留重复类型
- `return` `string[]` 类型名称