0.0.2 • Published 1 year ago
lwj-utils v0.0.2
l-utils
介绍
一款简单的数据处理工具库。
安装
- npm
npm i lwj-utils -D
- browser
<script src="https://unpkg.com/browse/lwj-utils@0.0.2/dist/index.umd.js"></script>
Array
unique
针对数组进行去重,可传入关键属性对对象元素进行过滤。返回过滤后的新数组。
语法
// 普通去重
unique();
// 针对对象元素某一属性进行去重以及为空过滤
unique(key);
参数:
参数 | 类型 | 是否必须 | 可选值 | 说明 |
---|---|---|---|---|
key | string | 否 | - | 对象元素过滤的关键属性名 |
返回值
返回过滤后的新数组。
示例
const arr = [
1,
1,
2,
"2",
{ id: 2, name: "name1" },
{ id: 2, name: "name2" },
{ id: "", name: "name3" },
];
// 不传参数时直接进行最基本的元素去重
arr.unique(); // [1, 2, '2', { id: 2, name: "name1" }, { id: 2, name: "name2" }, { id: "", name: "name3" },]
// 传入字符串id,当元素为对象时根据id进行去重过滤
arr.unique("id"); // [1, 2, '2', { id: 2, name: "name1" }]
Number
format
格式化数字,返回格式化后的字符串。
语法
// 按千分位进行分隔
format(separator);
// 固定小数位数
format(separator, decimals);
参数:
参数 | 类型 | 是否必须 | 可选值 | 说明 |
---|---|---|---|---|
separator | string | 否 | - | 千分位分隔符 |
decimals | number | 否 | - | 小数位数 |
返回值
返回格式化后的字符串。
示例
const num = 1234567;
// 按千分位进行分隔
num.format(","); // 1,234,567
// 保留固定小数位数
num.format(",", 2); // 1,234,567.00
Date
format
针对日期进行格式化,返回满足格式的日期字符串,若日期格式错误,则返回Invalid Date
。
语法
format(formatStr);
参数:
参数 | 类型 | 是否必须 | 可选值 | 说明 |
---|---|---|---|---|
formatStr | string | 否 | - | 格式化占位符,支持如下字符: |
标识 | 示例 | 描述 |
---|---|---|
YY | 18 | 年,两位数 |
YYYY | 2018 | 年,四位数 |
Q | 1-4 | 季度,一位数 |
01-04 | 季度,两位数 | |
M | 1-12 | 月份,从 1 开始 |
MM | 01-12 | 月份,两位数 |
MMM | Jan-Dec | 月份,英文缩写 |
MMMM | January-December | 月份,英文全称 |
D | 1-31 | 日期,从 1 开始 |
DD | 01-31 | 日期,两位数 |
d | 0-6 | 星期几,星期天是 0 |
dd | Su-Sa | 最简写的星期几 |
ddd | Sun-Sat | 简写的星期几 |
dddd | Sunday-Saturday | 星期几,英文全称 |
H | 0-23 | 小时,24h 制 |
HH | 00-23 | 小时,24h 制,两位数 |
h | 0-12 | 小时,12h 制 |
hh | 01-12 | 小时,12h 制,两位数 |
m | 0-59 | 分钟 |
mm | 00-59 | 分钟,两位数 |
s | 00-59 | 秒 |
ss | 00-59 | 秒,两位数 |
S | 0-9 | 毫秒(十),一位数 |
SS | 0-99 | 毫秒(百),两位数 |
SSS | 0-999 | 毫秒(千),三位数 |
Z | -05:00 | UTC 的偏移量,±HH:mm |
ZZ | -0500 | UTC 的偏移量,±HH:mm |
A | AM / PM | 上/下午,大写 |
a | am / pm | 上/下午,小写 |
返回值
返回格式化后的字符串。
示例
const date = new Date("2023/01/01");
date.format("YYYY-MM-DD"); // 2023-01-01
date.format("YYYY-MM-DD HH:mm:ss"); // 2023-01-01 00:00:00
add
增加一定时间,返回增加后的日期对象。
语法
add(number, unit);
参数
参数 | 类型 | 是否必须 | 可选值 | 说明 |
---|---|---|---|---|
number | number | 是 | - | 需要增加的数量,若为负数代表减去 |
unit | string | 是 | year、quarter、month、week、day、hour、minute、second、millisecond | 需要增加的单位 |
返回值
返回增加后的日期对象。
示例
const date = new Date("2023/01/01");
date.add(1, "day"); // Mon Jan 02 2023 00:00:00 GMT+0800 (中国标准时间)
subtract
减去一定时间,返回减去后的日期对象。
语法
subtract(number, unit);
参数
参数 | 类型 | 是否必须 | 可选值 | 说明 |
---|---|---|---|---|
number | number | 是 | - | 需要增加的数量,若为负数代表增加 |
unit | string | 是 | year、quarter、month、week、day、hour、minute、second、millisecond | 需要增加的单位 |
返回值
返回减去后的日期对象。
示例
const date = new Date("2023/01/01");
date.subtract(1, "day"); // Sat Dec 31 2022 00:00:00 GMT+0800 (中国标准时间)
返回指定单位下相对于另一个日期之间的差异。
语法
diff(date, unit);
参数
参数 | 类型 | 是否必须 | 可选值 | 说明 |
---|---|---|---|---|
date | Date | 是 | - | 相比较的日期 |
unit | string | 是 | year、quarter、month、week、day、hour、minute、second、millisecond | 差异单位 |
返回值
返回差异的数量。
示例
new Date("2023/01/01").diff(new Date("2022/01/02"), "day"); // 364
startOf
startOf()
方法用于设置一个时间的开始,并返回对应的开始时间。
语法
startOf(unit);
参数
参数 | 类型 | 是否必须 | 可选值 | 说明 |
---|---|---|---|---|
unit | string | 是 | year、quarter、month、week、day、hour、minute、second、millisecond | 开始单位 |
返回值
返回对应的开始日期对象。
示例
new Date().startOf("year"); // Sun Jan 01 2023 00:00:00 GMT+0800 (中国标准时间)
endOf
endOf()
方法用于设置一个时间的结束,并返回对应的结束时间。
语法
endOf(unit);
参数
参数 | 类型 | 是否必须 | 可选值 | 说明 |
---|---|---|---|---|
unit | string | 是 | year、quarter、month、week、day、hour、minute、second、millisecond | 结束单位 |
返回值
返回对应的结束日期对象。
示例
new Date().endOf("year"); // Sun Dec 31 2023 23:59:59 GMT+0800 (中国标准时间)
getQuarter
根据本地时间,返回一个指定的日期对象为哪一个季度。
语法
getQuarter();
参数
参数 | 类型 | 是否必须 | 可选值 | 说明 |
---|---|---|---|---|
- | - | - | - | - |
返回值
返回一个指定的日期对象为哪一个季度。1-4。
示例
new Date().getQuarter(); // 1
getMonthDays
返回一个指定的日期对象所在月份的天数。
参数
参数 | 类型 | 是否必须 | 可选值 | 说明 |
---|---|---|---|---|
- | - | - | - | - |
返回值
返回一个指定的日期对象所在月份的天数。
示例
new Date().getMonthDays(); // 31