一个由ts构建的简单js函数库,目的是简化js数据操作。
npm install speedfix
import speedfix from 'speedfix'
import { isString } from 'speedfix/src/isString'
- checkType
- isString
- isNumber
- isBoolean
- isArray
- isFunction
- isObject
- isUndefined
- isNull
- isEmptyValue
- isEmptyObject
- isEmptyList
speedfix.checkType(value)
speedfix.isString(value)
speedfix.isNumber(value)
speedfix.isBoolean(value)
speedfix.isArray(value)
speedfix.isFunction(value)
speedfix.isObject(value)
speedfix.isUndefined(value)
speedfix.isNull(value)
speedfix.isEmptyValue(value)
speedfix.isEmptyObject(value)
speedfix.isEmptyList(value)
// 普通插入
speedfix.listInsert([1, 2, 3], [4, 5])
// [1,2,3,4,5]
// 依据下标插入
speedfix.listInsert([1, 2, 3], {a: 1}, 1)
// [1,{a: 1},2,3]
// 筛选对象插入(默认向后)
speedfix.listInsert([{a: 1,b: 1},{a: 2,b: 2}], {a:3,b:3}, {a: 1})
// [{a:1,b:1},{a:3,b:3},{a:2,b:2}]
// 选择插入方向(向前)
speedfix.listInsert([{a: 1,b: 1},{a: 2,b: 2}], {a:3,b:3}, {a: 2}, 'ahead')
// [{a:1,b:1},{a:3,b:3},{a:2,b:2}]
// 根据下标指定数量删除
speedfix.listRemove([1,2,3,4], 0, 2)
// [3,4]
// 指定数据删除
speedfix.listRemove([1,2,3,4], [2,4])
// [1,3]
// 根据属性指定删除
speedfix.listRemove([{a: 1,b:2},{a:1,b:1,c:3}], {b:1,c:3})
// [{a: 1, b: 2}]
// 普通排序(默认大到小)
speedfix.sort([2, 4, 3, 6, 5, 8, 7, 9, 0])
// [9, 8, 7, 6, 5, 4, 3, 2, 0]
// 普通排序(小到大)
speedfix.sort([2, 4, 3, 6, 5, 8, 7, 9, 0], 'order')
// [0, 2, 3, 4, 5, 6, 7, 8, 9]
// 对象数组排序(默认大到小)
speedfix.sort([{ a: 1 }, { a: 4 }, { a: 2 }, { a: 3 }], 'a')
// [{ a: 4 }, { a: 3 }, { a: 2 }, { a: 1 }]
// 对象数组排序(小到大)
speedfix.sort([{ a: 1 }, { a: 4 }, { a: 2 }, { a: 3 }], 'order', 'a')
// [{ a: 1 }, { a: 2 }, { a: 3 }, { a: 4 }]
// 普通去重
speedfix.listDeduplicate([1,2,3,3,4,5,6,6,7,7,8,8,8])
// [1,2,3,4,5,6,7,8]
// 对象数组去重(默认保留向前)
speedfix.listDeduplicate([{a:1,b:2},{a:1,b:3},{a:2,b:2,c:3}], 'a')
// [{a:1,b:2},{a:2,b:2,c:3}]
// 对象数组去重(保留向后)
speedfix.listDeduplicate([{a:1,b:2},{a:1,b:3},{a:2,b:2,c:3}], 'a', 'behind')
// [{a:1,b:3},{a:2,b:2,c:3}]
var arr = [
{id: 1, year: 2018},
{id: 2, year: 2017},
{id: 3, year: 2016},
{id: 4, year: 2017},
{id: 5, year: 2018},
{id: 6, year: 2017}
]
speedfix.listGroup({target: arr, key: 'year'})
// {
// "2016": [
// {"id": 3, "year": 2016}
// ],
// "2017": [
// {"id": 2, "year": 2017},
// {"id": 4, "year": 2017},
// {"id": 6, "year": 2017}
// ],
// "2018": [
// {"id": 1, "year": 2018},
// {"id": 5, "year": 2018}
// ]
// }
speedfix.toArray(target)
// 合并(向后覆盖)
speedfix.objectMerge([{ a: 1 }, { a: 2, b: 2 }, { a: 3, c: 3 }])
// { a: 3, b: 2, c: 3 }
// 合并(向前覆盖)
speedfix.objectMerge([{ a: 1 }, { a: 2, b: 2 }, { a: 3, c: 3 }], 'ahead')
// { a: 1, b: 2, c: 3 }
// 浅拷贝
speedfix.objectCopy({ a: 1, b: 2, c: { aa: 11, bb: 22 } })
// 深拷贝
speedfix.objectCopy({ a: 1, b: 2, c: { aa: 11, bb: 22 } }, 'deep')
speedfix.objectToQuery({ a: 1, b: 2, c: 3 })
// 'a=1&b=2&c=3'
// 自定义连接符
speedfix.objectToQuery({ a: 1, b: 2, c: 3 }, '@')
// 'a=1@b=2@c=3'
// yyyy: 年
// M: 月(不补0)
// MM: 月(补0)
// D: 天(不补0)
// DD: 天(补0)
// h: 12小时制小时(不补0)
// hh: 12小时制小时(补0)
// H: 24小时制小时(不补0)
// HH: 24小时制小时(补0)
// m: 分钟(不补0)
// mm: 分钟(补0)
// s: 秒(不补0)
// ss: 秒(补0)
// 默认格式
speedfix.toDate('2018-3-3')
// 2018-03-03 00:00:00
// 格式自定义
speedfix.toDate(1234567890, 'YY//MM!!DD hh::mm""ss')
// 1970//01!!15 14::56""07
speedfix.toThousands('123123123')
// 123,123,123
speedfix.toThousands('123123123.123123')
// 123,123,123.123123
speedfix.queryToObject('a=1&b=2&c=3')
// { a: "1", b: "2", c: "3" }
// 自定义连接符
speedfix.queryToObject('a=1#b=2#c=3', '#')
// { a: "1", b: "2", c: "3" }
speedfix.setCookie('token', '1357924680', {'max-age': 40000})
speedfix.getCookie(key)
speedfix.setStorage('id',[1,2,3], {
expire: 10000,
mode: 'session'
})
speedfix.setStorage(key)
speedfix.downloadBlob(data, MIME, fileName)
speedfix.isEmail(val)
speedfix.isPhoneNum(val)
speedfix.isChinese(str)