my common utils lib
$3
``
sh
npm install common-utils-y
`
`
ts
import { isBoolean, isEmpty, enterFullscreen } from "common-utils-y";
`
推荐使用 typescript
默认使用 lib 目录下入口,包含浏览器方法
不需要 browser 目录方法可以使用lib-node
目录
`
ts
import { isBoolean, isEmpty } from "common-utils-y/lib-node";
``
!
代码提升方便使用
$3
| 目录 | 方法 |
| -------- | --------------------------------------------------------------------- |
| array | 数组的常用方法,如 uniqueArray、getUniqueArray |
| number | 数字处理, 如 getRandomInt |
| string | 字符串处理,如 capitalizeFirstLetter、toCamelStyle |
| object | 对象方法,如 deepCopy |
| function | 函数,如 debounce、 throttle |
| date | 日期方法,如 formatDate |
| types | 数据类型判断,如 isBigInt、isBoolean |
| browser | 浏览器 api, 如 enterFullscreen、exitFullscreen、getFullscreenElement |
#### 数组(array)
数组相关方法
| 方法 | 说明 |
| -------------- | -------------------------------------------------------------- |
| uniqueArray | 简单数据数组去重方法,适用于数字、字符串等类型数组 |
| getUniqueArray | 根据 key 属性去重对象数组 |
| findPathInTree | 查找树形数据中从根节点到目标节点的完整路径,未找到则返回空数组 |
#### 数字(number)
数字相关方法
| 方法 | 说明 |
| ------------ | ------------------------------ |
| getRandomInt | 获取两个数字间的随机整数值 |
| addCommas | 数字添加千分符,小数部分不处理 |
| add | 多个数字相加,包含精度处理 |
| subtract | 多个数字相减,包含精度处理 |
| multiply | 多个数字相乘,包含精度处理 |
| divide | 多个数字相除,包含精度处理 |
#### 字符串(string)
字符串相关方法
| 方法 | 说明 |
| --------------------- | ---------------------- |
| capitalizeFirstLetter | 字符串首字母大写 |
| toCamelStyle | 将字符串转为小驼峰写法 |
| escapeHTML | 将字符串 HTML 转义 |
| escapeCSS | 将字符串 css 转义 |
| escapeJS | 将字符串 js 转义 |
#### 对象(object)
对象相关方法
| 方法 | 说明 |
| -------- | -------------------------------------------------------------------- |
| deepCopy | 深拷贝函数,支持处理日期、数组、正则表达式、Map、Set,函数则直接返回 |
#### 函数(function)
函数相关方法
| 方法 | 说明 |
| -------- | -------------------------------- |
| debounce | 防抖函数,支持取消执行 |
| throttle | 节流函数,支持立即执行和尾部执行 |
#### 日期(date)
日期相关方法
| 方法 | 说明 |
| ----------- | ------------------------------ |
| isDate | 判断是否日期对象 |
| isValidDate | 判断是否为合法日期对象 |
| formatDate | 将日期对象格式化为自定义字符串 |
日期格式化支持的符号
| 符合 | 说明 | 示例 |
| ---- | --------------------------- | ---------------------------------------- |
| yyyy | 4 位年份 | 2025 |
| yy | 2 位年份 | 25 |
| MM | 2 位月份(补零) | 01-12 |
| M | 月份(不补零) | 1-12 |
| dd | 2 位日期(补零) | 01-31 |
| d | 日期(不补零) | 1-31 |
| HH | 2 位小时(24 小时制,补零) | 00-23 |
| H | 小时(24 小时制,不补零) | 0-23 |
| hh | 2 位小时(12 小时制,补零) | 01-12 |
| h | 小时(12 小时制,不补零) | 1-12 |
| mm | 2 位分钟(补零) | 00-59 |
| m | 分钟(不补零) | 0-59 |
| ss | 2 位秒(补零) | 00-59 |
| s | 秒(不补零) | 0-59 |
| a | 上午/下午 | 上午/下午 |
| Q | 季度 | 1-4 |
| w | 星期 | '日', '一', '二', '三', '四', '五', '六' |
#### 类型(type)
类型相关方法
| 方法 | 说明 |
| ---------- | -------------------------------- |
| isBoolean | 判断参数是否为布尔值 |
| isNumber | 判断参数是否为数字 |
| isString | 判断参数是否为字符串 |
| isFunction | 判断参数是否为函数 |
| isBigInt | 判断参数是否为 bigInt |
| isArray | 判断参数是否为数组 |
| isEmpty | 判断参数是否为 null 或 undefined |
#### 浏览器(browser)
浏览器相关方法
| 方法 | 说明 |
| -------------------- | ------------------------------ |
| enterFullscreen | 请求进入全屏 |
| exitFullscreen | 请求退出全屏 |
| getFullscreenElement | 获取当前全屏元素 |
| addResizeObserve | 监听元素尺寸变化并执行回调函数 |
| removeResizeObserve | 取消监听尺寸的回调函数 |
$3
后续补充一些常用的基础方法,方便不同项目开发。
包括不同数据类型的常用工具封装,以及不同浏览器兼容性 api 的进一步封装。
欢迎各位大佬帮助补充、纠偏。。。