/*
* @param {String} field: y,M,d,h,m,s,S
* @param {String} fmt: DATE_FMTS
* @call str.fdate(field, fmt, def)
*/
let str = '2022-06-23 10:53:45'
console.log(str.fdate('y', 'yyyyMMdd')) // 2022
/*
* @param {String} fmt: DATE_FMTS
* @call str.toDate(fmt)
*/
let str = '2022-06-23 10:53:45'
console.log(str.toDate('yyyy-MM-dd hh:mm')) // Thu Jun 23 2022 10:53:00 GMT+0800 (中国标准时间)
/*
* @param {String} f: y m d h m s S
* @calldate.field(f)
*/
let date = new Date()
console.log(date.field('y')) // 2022
/*
* @param {String} fmt: DATE_FMTS
* @call date.format(fmt)
*/
let date = new Date()
console.log(date.format('yyyy-MM-dd')) // 2022-06-23
/*
* @param {String || Number} val: '2022-06-30' || 20220630
* @param {String} fmt: DATE_FMTS
* @call date.setValue(val, fmt)
*/
let date = new Date()
console.log(date.setValue('2022-06-30')) // Thu Jun 30 2022 00:00:00 GMT+0800 (中国标准时间)
/*
* @call date.yyyyMMdd()
*/
let date = new Date()
console.log(date.yyyyMMdd()) // 2022-06-23
/*
* @call date.trim()
*/
let date = new Date()
console.log(date.trim()) // Thu Jun 23 2022 00:00:00 GMT+0800 (中国标准时间)
/*
* @param {Boolean} trim
* @call date.toFirstDate(trim)
*/
let date = new Date()
console.log(date.toFirstDate()) // Wed Jun 01 2022 17:08:33 GMT+0800 (中国标准时间)
/*
* @param {Boolean} trim
* @call date.toLastDate(trim)
*/
let date = new Date()
console.log(date.toLastDate()) // Thu Jun 30 2022 17:09:26 GMT+0800 (中国标准时间)
/*
* @call date.toIntDate()
*/
let date = new Date()
console.log(date.toIntDate()) // 20220623
/*
* @param {Number} days
* @call date.subDays(days)
*/
let date = new Date()
console.log(date.addDays(1)) // Wed Jun 24 2022 17:12:46 GMT+0800 (中国标准时间)
/*
* @param {Number} days
* @call date.subDays(days)
*/
let date = new Date()
console.log(date.subDays(1)) // Wed Jun 22 2022 17:12:46 GMT+0800 (中国标准时间)
/*
* @param {Number} m
* @call date.addMonth(m)
*/
let date = new Date()
console.log(date.addMonth(1)) // Sat Jul 23 2022 17:15:09 GMT+0800 (中国标准时间)
/*
* @callback cb
* @callback done
* @call arr.oneByOne(cb, done)
*/
let list = [1, 2, 3]
list.oneByOne((item, next) => {
console.log(item)
next()
}, done => {
console.log('done')
})
// 1 2 3 done
/*
* @param {String} name
* @call arr.fetch(name)
*/
let list = [{ name: 'Ethan' }, { name: 'Linna' }, { name: 'Ryan' }]
console.log(list.fetch('name')) // ["Ethan", "Linna", "Ryan"]
/*
* @param {String} name
* @call arr.groupBy(name)
*/
let list = [{ name: 'Ethan', sex: 'male' }, { name: 'Linna', sex: 'female' }, { name: 'Ryan', sex: 'male' }]
let res = list.groupBy('sex')
console.log(res)
// [
//{count: 2, name: 'male', subs: [{name: 'Ethan', sex: 'male'}, {name: 'Ryan', sex: 'male'}]},
//{count: 1, name: 'female', subs: [{name: 'Linna', sex: 'female'}]}
//]
/*
* @param {Object} arguments
* @call .fetch(name)
*/
function fn(parmas, cb) {
console.log(parmas)
cb && cb()
}
function test(cb, fb) {
fn.args(this, fb)('p1', () => {
if (condition) {
cb && cb()
} else {
fb && fb()
}
})
}
test(() => {
console.log('cb')
}, () => {
console.error('fb')
})
/*
* @param {Function} fn
* @call function.mixin(fn)
*/
function fn1() {
console.log(1)
}
function fn2() {
console.log(2)
}
fn1.mixin(fn2)() // 1 2
/*
* @param {Number} time
* @call function.timeout(time)
*/
function fn() {
console.log(1)
}
fn1.timeout(500, this)() // 1
/*
* @param {Number} count 运行次数
* @param {Number} delay 间隔时间(毫秒)
* @call function.countdown(count, delay)
*/
function fn(count) {
console.log(count)
}
fn.countdown(60, 1000, this)() // 60 59 ... 1