wj-common-fn
Version:
常用函数
54 lines (48 loc) • 4.11 kB
Markdown
### 常用函数
deepCopy, isEmpty, throttle, debounce, getBase64等等
### 安装
`npm i wj-common-fn -S`
### 使用
```javascript
import { deepCopy, isEmpty, throttle, debounce, getBase64 } from 'wj-common-fn';
let a = [1];
let b = deepCopy(a);
```
### 函数列表
| 函数名称 | 说明 | 返回 |
| ------- | ---- | ---- |
| deepCopy | 深度克隆 deepCopy(o: any) | any |
| isEmpty | 是否为空 isEmpty(val: any) | boolean |
| throttle | 节流 throttle(fn: Function, wait: number) | () => void |
| debounce | 防抖 debounce(fn: Function, wait: number) | () => void |
| getBase64 | 将文件转换成base64 getBase64(file) | Promise<unknown> |
| setCookie | 设置cookie setCookie(name: string,value: string,config: CookieOptions = { type: "天", expires: 1 }) | void |
| getCookie | 获取cookie getCookie(key: string) | string or false |
| delCookie | 删除cookie delCookie(key: string) | void |
| randomNumber | 返回一个在范围内的随机数 randomNumber(n1: number, n2: number) | number |
| changeCase | 字母大小写切换, changeCase(str: string, type: number), type 数字 1:首字母大写、2:首母小写、3:大小写转换、4:全部大写、5:全部小写 | string |
| arraySort | 数组排序,arraySort(arr: number[], desc: ArrayDesc = "asc"),desc 排序方式 'asc'升序,'desc'降序 | number[] |
| arrayObjSort | 对象数组快速排序,arrayObjSort(arr: any[], key: string, desc: ArrayDesc = "asc"),key 排序依据关键字,desc 排序方式 'asc'升序,'desc'降序 | any |
| arrayUnique | 数组去重,arrayUnique(arr: any[]) | any[] |
| arrayIntersection | 数组的交集,arrayIntersection(arr1: any[], arr2: any[]) | any[] |
| arrayMinus | 数组的差集 arr1-arr2,arrayMinus(arr1: any[], arr2: any[]) | any[] |
| arrayUnion | 数组的并集,参数可以使多个,arrayUnion(...args) | any[] |
| isClass | 是否是类,isClass(obj: any, strict: boolean = true) | boolean |
| getBase64ByUrl | 实现将项目的图片路径转化成base64,getBase64ByUrl(img: string) | Promise<unknown> |
| getBase64Image |将DOM元素img转换为base4的主要方法,getBase64Image(img: HTMLImageElement,width?: number,height?:number) | string |
| convertBase64ToBlob | base64转Blob,convertBase64ToBlob(base64: string) | Blob |
| toFileByUrl | 将图片路径转换成file文件类型,toFileByUrl(url: string, name?: string) | Promise<unknown> |
| isJson | 判断是否是json数据,isJson(obj) | boolean |
| hideElements | 隐藏制定的所有元素,hideElements(...el: HTMLElementTagNameMap[keyof HTMLElementTagNameMap][]) | void |
| hasClassName | 元素是否具有指定的类,hasClassName(el: HTMLElementTagNameMap[keyof HTMLElementTagNameMap], className: string) | boolean |
| getScrollPosition | 获取当前页面的滚动位置,getScrollPosition(el: any | Window = window) | { x: any, y: any } |
| scrollToTop | 滚动到顶部,scrollToTop() | void |
| elementContains | 父元素是否包含子元素,elementContains(parent: HTMLElementTagNameMap[keyof HTMLElementTagNameMap], child: HTMLElementTagNameMap[keyof HTMLElementTagNameMap]) | boolean |
| elementIsVisibleInViewport | 指定元素是否在视口可见,elementIsVisibleInViewport(el: HTMLElementTagNameMap[keyof HTMLElementTagNameMap], partiallyVisible = false) | boolean |
| detectDeviceType | 分辨设备是移动设备还是桌面设备,detectDeviceType() | "Mobile" or "Desktop" |
| getURLParameters | 获取当前 URL参数的对象,getURLParameters(url: string) | {} |
| getDaysDiffBetweenDates| 获取两个日期之间的天数间隔,getDaysDiffBetweenDates(dateInitial: number, dateFinal: number) | number |
| counter | 为指定选择器创建具有指定范围、步长和持续时间的计时器,counter(selector: string, start: number, end: number, step = 1, duration = 2000) | NodeJS.Timeout |
| copyToClipboard | 将一个字符串复制到剪贴板,copyToClipboard(str: string) | void |
### github源代码
<https://github.com/WJjack/wj-common-fn.git>