11## [ docs] ( https://www.hejian.club/posts/toolsfunction )
22
33## 此文是介绍封装的工具函数的文档[ simon-js-tool] ( https://www.npmjs.com/package/simon-js-tool )
4- 还在持续更新中,尽情期待 ...
4+ 目前整理了< strong >60+</ strong >的常用函数, 还在持续更新中...
55
66## 使用说明
77``` bash
88npm i simon-js-tool # 安装
99
1010import {
11- asyncPool,
12- curry,
13- debounce,
14- deepClone,
15- deepCompare,
16- deepMerge,
17- memorizeFn,
18- quickFilter,
19- quickFind,
20- throttle,
21- transformKey,
22- traverse,
23- isFn,
24- isStr,
25- isNum,
26- isPlainObject,
27- isUndef,
28- isArray,
29- isPromise,
30- isNaN.
31- isSymbol,
32- isNull,
33- isReg,
34- VFetch,
35- interceptError } from ' simon-js-tool' # 按需引入
11+ deepCompare
12+ } from ' simon-js-tool' # 按需引入
3613
3714```
3815
@@ -65,6 +42,7 @@ console.log(result) // { a: 1, b: 4, c: { d: 5, e: 6 } }
6542- 控制异步并发执行的数量
6643- 参数: limit-控制异步并发执行的数量,tasks-异步任务数组
6744``` js
45+ // limit 并发数量 , tasks httpRequest[]
6846asyncPool (limit, tasks).then ((results ) => {
6947 // results is an array of results
7048})
@@ -150,6 +128,7 @@ const f = debounce(() => {
150128- 函数接收target-当前遍历的值,index-当前遍历的索引, item-当前遍历的那一项
151129- 可以指定多个属性
152130- 使用类似与babel的traverse方法
131+ - 使用场景:快速提取数据中的某些属性,转换为新的数据结构
153132``` javascript
154133// traverse(arr, { 'family.name'(target: any, index: number, item: any) { console.log(target, index) } })
155134const obj = {
@@ -170,6 +149,7 @@ traverse(obj, {
170149## transformKey
171150- 支持多层级的key
172151- 将对象的key转换成需要的key
152+ - 使用场景: 前端定义字段有后端不一样的key,比如后端的key是id,前端的key是_id
173153``` javascript
174154// transformKey(obj, { 'family.name': 'familyName', 'family.age': 'familyAge' })
175155const obj = {
@@ -295,6 +275,7 @@ getDevice() => { os: 'android', dev: 'chrome' }
295275preload (' https://img.yzcdn.cn/vant/cat.jpeg' )
296276preload ([' https://img.yzcdn.cn/vant/cat.jpeg' , ' https://img.yzcdn.cn/vant/dog.jpeg' ])
297277` ` `
278+
298279## lazyLoad
299280- 图片懒加载
300281- params-1: 图片的集合 Element | Element[] | NodeList[] | class | id | tagName
@@ -309,13 +290,14 @@ preload(['https://img.yzcdn.cn/vant/cat.jpeg', 'https://img.yzcdn.cn/vant/dog.jp
309290// template
310291 < img src= " temp" data- src= " ../public/favicon.svg" alt= " " h- 10 bg- red / >
311292` ` `
293+
312294## addScript
313- - 动态添加script标签
295+ - 动态添加script标签放 => ead
314296` ` ` javascript
315297addScript (' https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js' )
316298` ` `
317299## addStyle
318- - 动态添加style标签
300+ - 动态添加style标签 => head
319301` ` ` javascript
320302addStyle (`
321303 .test {
@@ -334,6 +316,10 @@ download('https://www.baidu.com/img/bd_logo1.png', 'baidu.png')
334316- type: '前空格' | '后空格' | '前后空格' | '所有空格'
335317` ` ` javascript
336318trim (str: string,type: ' pre' | ' post' | ' around' | ' all' = ' around' )
319+ trim (' h e l l o ' ) => ' h e l l o'
320+ trim (' h e l l o ' , ' pre' ) => ' h e l l o '
321+ trim (' h e l l o ' , ' post' ) => ' h e l l o'
322+ trim (' h e l l o ' , ' all' ) => ' hello'
337323` ` `
338324
339325## compressCss
@@ -456,7 +442,6 @@ formateNum(number: number | string, decimals = 2, integer: 'floor' | 'ceil' = 'c
456442// interceptError(() => { throw new Error('error') }).catch(err=>{ console.log(err) })
457443interceptError (fn: Function ) => Promise < any>
458444` ` `
459-
460445## isBottom
461446- 判断滚动是否触底
462447- distance: 距离底部的距离作为触底的判断标准 默认0
@@ -475,21 +460,22 @@ console.log(calNum.mul(0.1, 0.2, 0.2)) => 0.004
475460` ` `
476461
477462## 类型判断
478- - isArray(o) - 判断是否是数组
479- - isPlainObject(o) - 判断是否是纯对象
480- - isFn(o) - 判断是否是函数
481- - isStr(o) - 判断是否是字符串
482- - isNum(o) - 判断是否是数字
483- - isBool(o) - 判断是否是布尔值
484- - isUndef(o) - 判断是否是undefined
485- - isNull(o) - 判断是否是null
486- - isNaN(o) - 判断是否是NaN
487- - isReg(o) - 判断是否是正则
488- - isSymbol(o) - 判断是否是Symbol
489- - isPromise(o) - 判断是否是Promise
490- - isDate(o) - 判断是否是日期
491- - isMobile(o) - 判断是否是手机号
492- - isEmail(o) - 判断是否是邮箱
463+ - isArray(obj) - 判断是否是数组
464+ - isPlainObject(obj) - 判断是否是纯对象
465+ - isFn(obj) - 判断是否是函数
466+ - isStr(obj) - 判断是否是字符串
467+ - isNum(obj) - 判断是否是数字
468+ - isBool(obj) - 判断是否是布尔值
469+ - isUndef(obj) - 判断是否是undefined
470+ - isNull(obj) - 判断是否是null
471+ - isNaN(obj) - 判断是否是NaN
472+ - isReg(obj) - 判断是否是正则
473+ - isSymbol(obj) - 判断是否是Symbol
474+ - isPromise(obj) - 判断是否是Promise
475+ - isDate(obj) - 判断是否是日期
476+ - isMobile - 判断是否是手机号
477+ - isEmail - 判断是否是邮箱
478+ - isIdCard - 判断是否是身份证
493479- isSet(o) - 判断是否是Set
494480- isMap(o) - 判断是否是Map
495481
0 commit comments