UNPKG

fordata

Version:

Easy handle data by prototype for TreeData、Array、Date、Encode、String etc.

387 lines (367 loc) 9.86 kB
# ForData Easy handle data by prototype for TreeData、Array、Date、Encode、String etc.. ## Install ``` node npm i fordata //or yarn add fordata ``` ## CDN ``` js <script src="https://unpkg.com/fordata/dist/index.min.js"></script> ``` ### Usage - #### Tree ``` js const { Tree } = require("fordata") new Tree({ id: 'id', parentId: 'pid', label: 'name', children: 'child' }) let tree = [{ name: '-一级 1', id: '一级 1', z: 1, child: [{ name: '-二级 1-1', id: '二级 1-1', z: 3, child: [{ name: '-三级 1-1-1', id: '三级 1-1-1', z: 2 }] }] }, { name: '-一级 2', id: '一级 2', child: [{ name: '-二级 2-1', id: '二级 2-1', child: [{ name: '-三级 2-1-1', id: '三级 2-1-1' }] }, { name: '-二级 2-2', id: '二级 2-2', child: [{ name: '-三级 2-2-1', id: '三级 2-2-1' }] }] }, { name: '-一级 3', id: '一级 3', child: [{ name: '-二级 3-1', id: '二级 3-1', child: [{ name: '-三级 3-1-1', id: '三级 3-1-1' }] }, { name: '-二级 3-2', id: '二级 3-2', child: [{ name: '-三级 3-2-1', id: '三级 3-2-1' }] }] }] ``` * toArray(parentId) * {String|Number} parentId ``` js tree.toArray() ``` * toTree(parentId) * {String|Number} parentId ``` js tree.toArray().toTree() ``` * findPath(id) * {String|Number} id `required` ``` js tree.findPath('三级 3-1-1') ``` * findChildren(id) * {String|Number} id `required` ``` js tree.findPath('一级 3') ``` - #### DateTime ``` js const { DateTime } = require("fordata") new DateTime() ``` - ##### format() ``` js new Date().format('yyyy-MM-dd hh:mm:ss') // 2023-07-29 11:48:17 ``` - ##### prev() - {Number} timestamp ``` js new Date().prev(1e3 * 60 * 60 * 24) // 2023-07-28 11:48:17 ``` - ##### prevDay() - {Object} options - {Number} options.day - {Boolean} options.isShowAll = false - {Boolean} options.includeCurrent = false ``` js new Date().prevDay({ day: 5 }) // 2023-07-24 11:48:17 new Date().prevDay({ day: 5, isShowAll: true }) // [ // '2023-07-24 11:48:17', // '2023-07-25 11:48:17', // '2023-07-26 11:48:17', // '2023-07-27 11:48:17', // '2023-07-28 11:48:17' // ] new Date().prevDay({ day: 5, isShowAll: true, includeCurrent: true }) // [ // '2023-07-25 11:48:17', // '2023-07-26 11:48:17', // '2023-07-27 11:48:17', // '2023-07-28 11:48:17', // '2023-07-29 11:48:17' // ] ``` - ##### prevMonth() - {Object} options - {Number} options.month - {Boolean} options.isShowAll = false - {Boolean} options.includeCurrent = false ``` js new Date().prevMonth({ month: 5, includeCurrent: false, isShowAll: true }) // [ // '2023-08-31 14:57:02', // '2023-09-30 14:57:02', // '2023-10-31 14:57:02', // '2023-11-30 14:57:02', // '2023-12-31 14:57:02' // ] ``` - ##### prevYear() - {Object} options - {Number} options.year - {Boolean} options.isShowAll = false - {Boolean} options.includeCurrent = false ``` js new Date().prevYear({ year: 5, includeCurrent: false, isShowAll: true }) // [ // '2018-07-29 14:57:57', // '2019-07-29 14:57:57', // '2020-07-29 14:57:57', // '2021-07-29 14:57:57', // '2022-07-29 14:57:57' // ] ``` - ##### next() - {Number} timestamp ``` js new Date().next(1e3 * 60 * 60 * 24) // 2023-07-30 14:58:50 ``` - ##### nextDay() - {Object} options - {Number} options.day - {Boolean} options.isShowAll = false - {Boolean} options.includeCurrent = false ``` js new Date().nextDay({ day: 5 }) // 2023-08-03 14:59:09 new Date().nextDay({ day: 5, isShowAll: true }) // [ // '2023-07-30 14:59:28', // '2023-07-31 14:59:28', // '2023-08-01 14:59:28', // '2023-08-02 14:59:28', // '2023-08-03 14:59:28' // ] new Date().nextDay({ day: 5, isShowAll: true, includeCurrent: true }) //[ // '2023-07-29 15:00:46', // '2023-07-30 15:00:46', // '2023-07-31 15:00:46', // '2023-08-01 15:00:46', // '2023-08-02 15:00:46' //] ``` - ##### nextMonth() - {Object} options - {Number} options.month - {Boolean} options.isShowAll = false - {Boolean} options.includeCurrent = false ``` js new Date().nextMonth({ month: 5, includeCurrent: false, isShowAll: true }) //[ // '2023-08-31 15:01:24', // '2023-09-30 15:01:24', // '2023-10-31 15:01:24', // '2023-11-30 15:01:24', // '2023-12-31 15:01:24' //] ``` - ##### nextYear() - {Object} options - {Number} options.year - {Boolean} options.isShowAll = false - {Boolean} options.includeCurrent = false ``` js new Date().nextYear({ year: 5, includeCurrent: false, isShowAll: true }) //[ // '2023-07-29 15:01:53', // '2024-07-29 15:01:53', // '2025-07-29 15:01:53', // '2026-07-29 15:01:53', // '2027-07-29 15:01:53' //] ``` - ##### split() - {Object} options - {Date} options.startTime - {Date} options.endTime - {Number} options.gap `milliseconds` ``` js datetime.split({ startTime: new Date('2022-01-01 00:00:00'), endTime: new Date('2022-01-10 23:59:59'), gap: 1e3 * 60 * 60 * 24 }) //[ // '2022-01-01 00:00:00', // '2022-01-02 00:00:00', // '2022-01-03 00:00:00', // '2022-01-04 00:00:00', // '2022-01-05 00:00:00', // '2022-01-06 00:00:00', // '2022-01-07 00:00:00', // '2022-01-08 00:00:00', // '2022-01-09 00:00:00', // '2022-01-10 00:00:00' // ] ``` - ##### calc() - {Object} options - {Date} options.startTime - {Date} options.endTime - {type} options.type `type values 'year' or 'day', default is 'year'` - {Number} options.offset `timezone offset, default is 8 (8 is China Timezone)` ``` js datetime.calc({ startTime: new Date('2022-01-01 00:00:00'), endTime: new Date('2022-11-10 23:59:59') }) // { year: 0, month: 10, day: 9, hour: 23, minutes: 59, seconds: 59 } datetime.calc({ startTime: new Date('2022-01-01 00:00:00'), endTime: new Date('2022-11-10 23:59:59') ,type : 'day'}) // { day: 313, hour: 23, minutes: 59, seconds: 59 } ``` - ##### getWeek() - {Array} weeks = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'] ``` js new Date().getWeek() // 星期日 new Date().getWeek(['周日', '周一', '周二', '周三', '周四', '周五', '周六']) // 周日 ``` - ##### getRangeYear() ``` js new Date().getRangeYear() // { start: '2023-01-01 00:00:00', end: '2023-12-31 23:59:59' } ``` - ##### getRangeMonth() ``` js new Date().getRangeMonth() // { start: '2023-07-01 00:00:00', end: '2023-07-31 23:59:59' } ``` - ##### getRangeWeek(startMonday = true) ``` js new Date().getRangeWeek() // { start: '2023-07-24 00:00:00', end: '2023-07-30 23:59:59' } ``` - #### Encode ``` js const { Encode } = require("fordata") new Encode() ``` - ##### toBase64() ``` js "test".toBase64() ``` - ##### base64ToString() ``` js "dGVzdA==".toBase64() ``` - ##### toEntity() ``` js "test".toEntity() ``` - ##### entityToString() ``` js "&#116;&#101;&#115;&#116;".entityToString() ``` - ##### encodeURL() ``` js "http://test.com".encodeURL() ``` - ##### decodeURL() ``` js "http%3A%2F%2Ftest.com".decodeURL() ``` - #### EasyArray ``` js const { EasyArray } = require("fordata") new EasyArray() ``` - ##### create() ``` js new Array.create(5, (i) => i + 1) ``` - ##### asc() ``` js [1, 2, 3, 4, 5, 1, 3, 4].asc() [{ a: 1 }, { b: 2 }, { a: 2 }, { a: 3 }, { a: 1 }, { b: 2 }, { b: 1 }, { c: 1 }].asc('a') ``` - ##### desc() ``` js [1, 2, 3, 4, 5, 1, 3, 4].desc() [{ a: 1 }, { b: 2 }, { a: 2 }, { a: 3 }, { a: 1 }, { b: 2 }, { b: 1 }, { c: 1 }].desc('a') ``` - ##### sum() ``` js [1, 2, 3, 4, 5, 1, 3, 4].sum() [{ a: 1 }, { b: 2 }, { a: 2 }, { a: 3 }, { a: 1 }, { b: 2 }, { b: 1 }, { c: 1 }].sum('a') ``` - ##### unique() ``` js [1, 2, 3, 4, 5, 1, 3, 4].unique() [{ a: 1 }, { b: 2 }, { a: 2 }, { a: 3 }, { a: 1 }, { b: 2 }, { b: 1 }, { c: 1 }].unique('a') ``` - ##### groupByLength() ``` js [1, 2, 3, 4, 5, 1, 3, 4].groupByLength(2) ``` - ##### groupByName() ``` js [{ a: 1 }, { b: 2 }, { a: 2 }, { a: 3 }, { a: 1 }, { b: 2 }, { b: 1 }, { c: 1 }].groupByName('a') ``` - ##### groupByValue() ``` js [{ a: 1 }, { b: 2 }, { a: 2 }, { a: 3 }, { a: 1 }, { b: 2 }, { b: 1 }, { c: 1 }].groupValue('a') // { '1': [ { a: 1 }, { a: 1 } ], '2': [ { a: 2 } ], '3': [ { a: 3 } ] } ``` - #### EasyString ``` js const { EasyString } = require("fordata") new EasyString() ``` - ##### getInfoByIdCard() ``` js '510101199911111111'.getInfoByIdCard() // { // areaCode: '510101', // year: '1999', // month: '11', // day: '11', // gender: 'male', // age: 24 // } ```