工具函数项目
npm install zb-fjs --save
深拷贝函数 使用方法:
import { deepClone } from 'zb-fjs'
deepClone(obj)
输出的值是深拷贝之后的值,详情请看博客实现一个深拷贝函数
解决计算机精度问题 使用方法:
import { precision } from 'zb-fjs'
/**
* 小数点后面保留第 n 位
*
* @param x 做近似处理的数
* @param n 小数点后第 n 位
* @returns 近似处理后的数
*/
precision(num, n)
详情:JS 精度问题总结
防抖和节流,使用方法:
import { debounceAt, debounce, throttleAt, throttle } from 'zb-fjs'
class a {
//参数number类型 延迟时间,默认300,第二参数boolean类型,第一次点击是否立即执行 throttleAt同
@debounceAt(500, true)
click() {
//click
}
@throttleAt(500)
click2() {
//click2
}
}
清除 object 中 不存在的属性
使用方法:
import { objClearUndefined } from 'zb-fjs'
const obj = {
a: 123,
b: '',
c: undefined
}
objClearUndefined(obj) // => { a: 123 }
时间格式化 分->时+分
import { timeFormat } from 'zb-fjs'
timeFormat(70) // => 1小时10分钟
timeFormat(70, 'obj') // => { h:1,min:10 }
时间格式化 年-Y 月-M 日-D 小时-H 分-m 秒-s 毫秒-S
import { dateFormat } from 'zb-fjs'
dateFormat('1993-11-11T12:00:00', 'YYYY.MM.DD HH:mm:ss') // => 1993.11.11 12:00:00
dateFormat('1993-11-11T12:00:00', 'YYYY-MM-DD HH:mm:ss') // => 1993-11-11 12:00:00
金钱格式化(分)
import { moneyFormat } from 'zb-fjs'
moneyFormat(230) // => { yuan:2, fen:30 }
canvas 中文字的换行和限定行数
接受 context 参数, text:渲染文字,x,y 坐标,line 行数,maxWidth:最大宽度,lineHeight: (文字高度+行间距)
import { lineClamp } from 'zb-fjs'
lineClamp(ctx, text, x, y, line, maxWidth, lineHeight)
数组求和
将数组中的所有数字或者数字字符串相加,返回 number 类型
import { sumArr, sumObjArr } from 'zb-fjs'
sumArr([1, 3, 4, 5, 6]) // 19
sumObjArr([{ a: 1 }, { a: 2 }, { a: 3 }], 'a') // 6
对象是否相等
import { objEquar } from 'zb-fjs'
objEquar({a: '123',b: {c:'aaa',d: [1,2]},{a:'123',b: {c:'aaa',d: [1,2]}}})
数组是否相等
import { arrEquar } from 'zb-fjs'
arrEquar([1, 2], [1, 2])
arrEquar([1, 1], [1, 2])
arrEquar([1, 2, { a: '12' }], [1, 2, { a: '12' }])
对象数组根据 key 去重
import { objArrRepeat } from 'zb-fjs'
objArrRepeat([{ name: '1' }, { name: '2' }, { name: '1' }], 'name')
获取 url 上的 query 参数
import { getQuery } from 'zb-fjs'
getQuery('name')
数组扁平化, 接受参数 1 数组, 2:拍平层级,默认展开所有
import { flat } from 'zb-fjs'
flat(arr, 1)
1.1.5
import { getCountDown } from 'zb-fjs'
getCountDown('2020-6-12 11:00:00', 'format')
1.1.8
import { base64Encode, base64Decode } from 'zb-fjs'
base64Encode('123')
base64Decode('MTIz')