tools
类型校验
#### isJSON
接收一个参数,只对 json 字符串返回 true。
#### isUndef
接收一个参数,未定义返回 true。
#### isDef
接收一个参数,定义了就返回 true。
#### isTrue
接收一个参数,只对布尔 true 返回 true。
#### isFalse
接收一个参数,只对布尔 false 返回 true。
#### isPrimitive
接收一个参数,只对原始类型返回 true。
#### isFunction
接收一个参数,只对 function 类型返回 true。
#### isObject
接收一个参数,只对不为 null 的 object 类型返回 true。
#### isPlainObject
接收一个参数,只对纯 JavaScript 对象返回 true。
#### isRegExp
接收一个参数,只对正则返回 true。
#### isPromise
接收一个参数,只对 promise 返回 true。
#### isDateValid
接收一个参数,只对 Date 类型返回 true。
#### isPhone
接收一个参数,只对正确的手机号返回 true。
类型转换
#### toRawType
接收一个参数,转换为原始类型。
#### toString
接收一个参数,转换为字符串类型。
#### toNumber
接收一个参数,转换为数字类型,如果转换结果为 NAN,返回 0。
#### toArray
接收两个参数,返回转换后的数组。
参数一(==必填==):参与转换的类数组对象,
参数二:从指定下标开始转换,默认下标 0 开始。
#### toObject
接收一个对象数组,合并为一个对象。
功能函数
#### hasOwn
接收两个参数,检查对象是否具有该属性,有该属性返回 true。
参数一(==必填==):目标对象
参数二:需要检测的 key
#### extend
接受两个参数,将属性混合到目标对象中,共有的属性参数二会覆盖参数一,返回混合后的对象
参数一:目标对象
参数二:参与混合的对象
#### cached
创建纯函数的缓存版本,接收一个函数(==必填==),返回一个缓存函数。
调用缓存函数传入要处理的参数,如果缓存中有该处理参数的处理后的结果直接返回,没有缓存则将该参数作为 key,处理结果作为值,存入缓存。
``
js
// 创建纯函数的缓存版本
function cached(fn) {
const cache = Object.create(null);
return function cachedFn(str) {
const hit = cache[str];
return hit || (cache[str] = fn(str));
};
}
// 大写首字母字符串
const capitalize = cached((str) => {
return str.charAt(0).toUpperCase() + str.slice(1);
});
``
#### capitalize
大写字符串首字母,接收一个参数(==必填==),返回处理后的结果。
#### remove
从数组中删除项,接收两个参数,返回删除项。
参数一(==必填==):目标数组
参数二:需要删除的项
#### looseEqual
检查两个值是否松散相等-也就是说,如果它们是普通对象,它们是否具有相同的形状?
一、如果 两个值 都是 Object 类型
1、这两个值都是 Array 类型 比较这个数组的长度和每一项值是否全等;
2、这两个值都是 Date 类型,比较两个日期的时间戳是否全等;
3、这两个值都是 Object 类型,比较这个对象的键值是否全等;
4、非以上三小种情况,返回 false;
二、如果连个值都不是对象类型,将他们都转为 String 类型比较
三、非以上两大种情况,返回 false
#### looseIndexOf
返回可以存在松散相等值的第一个索引。
在数组中找到(如果 value 是一个普通对象,数组必须包含相同形状的对象),如果不存在则为-1。
接受两侧参数,返回比较目标索引下标。
参数一(==必填==):目标数组。
参数二:参与查找的内容。
#### once
确保函数只被调用一次,接受一个参数。
#### rgbToHex
将 RGB 转换为十六进制,接受三个参数,分别为 r(==必填==)、g(==必填==)、b(==必填==),返回十六进制结果
#### randomHex
生成随机十六进制
#### removeDuplicates
数组去重,接收一个参数,返回去重后的结果。
#### random$2
生成随机数,接收一个最小值和一个最大值,生成结果包含最大最小值,默认最小值 0,最大值 10.
#### randomName
生成随机中文人名。
#### fillZero
补零,接受三个参数,返回补零后的字符串。
参数一:参与补零的数字,默认 0。
参数二:补零后的长度,默认 1。
参数三:前补还是后补,取值 0(后补)或 1(前补),默认 0。
#### listDataToTreeData
列表数据转 tree 状数据,接收两个参数,返回处理后的数据。
参数一:原始 list 数据。
参数二:props 配置, 指定 id、 pid、 children 对应的字段名称 {id: string, pid: string, children: string, baseVal: number | string}。
参数二:callback, 在集合中的每个项目上调用的函数。返回的值将插入到新集合中。
#### treeDataToListData
tree 状数据转列表数据 ,接受一个参数,返回处理后的数据。
参数一:原始 tree 状数据。
参数二:props 配置, 指定 children 对应的字段名称 {children: string}。
参数二:callback, 在集合中的每个项目上调用的函数。返回的值将插入到新集合中。
#### getTreeDataFirstData
获取树状数据第一条深度数据 ,接受一个参数,返回第一条深度数据。
参数一:原始 tree 状数据。
#### findTreeData
查找 treeData 中指定 id 数据 ,接受 5 个参数。
参数一:目标 id
参数二:原始数据
参数三:props 配置
参数四:回调函数(target: any;ind: number;arr: Array
,parent: any) => void
参数五:父级数据
#### updateTreeData
更新 treeData 中指定 id 数据 ,接受 4 个参数。
参数一:目标 id
参数二:原始数据
参数三:props 配置
参数四:回调函数(target: any;ind: number;arr: Array) => void
#### getTreeDataIdAndChildIds
获取数据 id 和所有子数据 id 集合,接受 2 个参数,返回 ids 集合。
参数一:原始数据
参数二:props 配置
日期处理
#### dayOfYear
接收一个日期,查询该日期在当年是第几天,默认当前日期,返回指定日期或者当前日期在当前是第几天。
#### dayDif
接收两个日期,计算两个日期之间相差的天数,默认当前日期,返回两个日期之间相差的天数。
#### getWeekday
获取工作日,接收两个参数,返回指定日期或者当前日期的工作日。
参数一:查询的日期
参数二:返回值的前缀,默认为“星期”,表示星期 X。
#### getDateInfo
获取日期信息,接收两个参数,返回包含年月日周时分秒和格式化后的日期。
参数一:查询的日期,默认当前日期
参数二:返回结果之中“dt”属性的格式化格式,默认为“YYYY-MM-DD hh:mm:ss”。
#### formatDate
格式化日期,接收两个参数,返回格式化后的日期。
参数一:参与格式化的日期,默认当前日期
参数二:格式化的格式,默认为“YYYY-MM-DD hh:mm:ss”。