# 通用工具

# 说明

通用工具模块,提供一些通用的工具函数,导出模块名为utils

  • 导入模块
import { utils } from 'gx-instant'

# 方法

# count

说明:数据统计

  • 参数
    • val:Object | Array | Map 被统计的数据
    • match:any | Array | Object 可以是单个值,也可以是数组(数组可以匹配自身结构,也可以匹配集合内部的每一项),也可以是对象(匹配对象结构的数据出现次数)
    • matchSelf:boolean 判断是否匹配自身,可选,match类型为数组时有效,如果为true,则统计的是match本身的值,否则统计match的子元素值
  • 返回:number 统计结果

示例

//匹配1在[1,2,3,{arr:[1,2]}]中出现的次数
count([1,2,3,{arr:[1,2]}],1)
//1和2和3,在[1,2,3,{arr:[1,2]}]中出现的总次数
count([1,2,3,{arr:[1,2]}],[1,2,3],false)
//匹配[1,2,3]本身这个结构在前面的数据中出现的次数
count([1,2,3,{arr:[1,2]}],[1,2,3],true)

# filter

说明:数据过滤

  • 参数
    • vales:Object | Array 要过滤的数据(支持数组,对象)
    • deep:boolean 是否深层过滤,可选,默认true
    • target:Array 要过滤的值,可选,默认[null,undefined]
  • 返回:Object | Array 过滤后的数据

# log

说明:浏览器控制台打印日志

  • 参数
    • val:Arguments 要打印的值,可传入多个参数,引用数据类型会序列化
    • type:string 打印类型,可选,默认info,可选值:info、error、warning、success;多参数时,如果最后一个参数为info、error、warning、success其中之一,则将该参数视为type,val为其之前参数,否则type默认为info,所有参数均视为val一部分;如果需要自定义配置,可以将type设置为{custom:true,color:'',title:''},custom必须为true,其中color为自定义背景色和title为日志标题

示例

//两个参数均为视为val
log('打印内容1','打印内容2')
//第一个参数为val,第二个参数为type
log('打印内容1','success')
//若最后一个参数为对象且custom为true,则视为自定义配置项
log('打印内容1','打印日志3',{custom:true,color:'',title:'自定义标题'})

# sleep

说明:睡眠

  • 参数
    • time:number 睡眠时间,单位毫秒
  • 返回:Promise 睡眠后返回的标识

# runner

说明:判断方法是否执行成功

版本:0.0.7

  • 参数
    • func:Function | Array<Function> 要执行的方法或方法列表
    • args:Array 方法参数,func为数组时,此参数为二维数组,顺序和func顺序保持一致
    • isDetail:boolean 是否返回具体信息,可选,默认false
  • 返回:boolean | Object boolean | Object 返回结果,isDetail为false时返回是否有异常结果(true/false,当func为数组时,返回结果数组),为true返回具体的执行信息,形式{type,res},type表示方法是否执行成功,成功返回success,错误返回fail,res成功时返回方法执行结果,错误时返回异常信息(当func为数组时,返回结果列表)

示例

  runner(()=>{}) //true,返回单个方法执行是否成功结果
  runner([()=>{},()=>{}]) //[true,true],返回结果列表
  //[{msg:'success',res:undefined},{msg:'success',res:undefined}],isDetail为true返回具体执行信息
  runner([()=>{},()=>{}],null,true) 

提示:runner对try...catch进行封装,用来判断方法执行过程是否成功,出现异常时可以返回错误信息