获取两个日期之间的天数
格式可为yyyy-MM-dd | yyyy/MM/dd
const getDays = (date1, date2) => Math.abs(new Date(date1) - new Date(date2)) / (1000 * 3600 * 24)
getDays('2020-04-04', '2021-03-25') // .log(355)
获取当前时间
const curTime = new Date().toTimeString().slice(0, 8)
curTime // .log('16:39:45')
在两个数字之间生成一个随机数
结果包括最大值最小值.
const getRandomNum = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min
getRandomNum(1, 10) // .log(1~10)
将数字转化为千分位格式
小数后保留3位
const toMark = num => num.toLocaleString('en-US')
toMark(11111111.11111111) // .log('11,111,111.111')
数组去重
const arrayRepeat = arr => [...new Set(arr)]
arrayRepeat([1, 5, 2, 3, 4, 3, 4, 5, 4]) // .log([1, 2, 3, 4, 5])
数组合并
const arr1 = [1, 2]
const arr2 = ['a', 'b']
// concat()方法和扩展运算符...
const mergeArr = [].concat(arr1, arr2)
const mergeArr = [...arr1, ...arr2]
mergeArr // .log([1, 2, 'a', 'b'])
多维数组转一维数组
const deepFlatten = ary => [].concat(...ary.map(item => (Array.isArray(item) ? deepFlatten(item) : item)))
deepFlatten([1, [2, 3], [4, [5, 6]]]) // .log([1, 2, 3, 4, 5, 6])
获取数据类型
const getRawType = value => Object.prototype.toString.call(value).slice(8, -1)
getRawType() // .log(Undefined)
getRawType([]) // .log(Array)
getRawType({}) // .log(Object)
getRawType(() => {}) // .log(Function)
将文字复制到剪贴板
const copyText = async (text) => await navigator.clipboard.writeText(text)
copyText('hello World')