# js-utils-plus **Repository Path**: lin779249475/js-utils-plus ## Basic Information - **Project Name**: js-utils-plus - **Description**: JavaScript工具方法库 - **Primary Language**: JavaScript - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-18 - **Last Updated**: 2025-09-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: npm, JavaScript, Vue ## README # js-utils-plus ### 介绍 Javascript 工具包 ### 安装 ```bash npm i js-utils-plus --save ``` ### 使用 ES Modules 方式引入 ```js import * as utilsPlus from "js-utils-plus"; ``` CommonJS 方式引入 ```js const utilsPlus = require("js-utils-plus"); ``` ### 使用说明 ##### Array - treeToArray: 树转列表,(tree: any[], key = "children"): any[] - arrayToTree: 列表转树,(arr: any[], key: string, parentKey = "parentId"): any[] - arrayToObject: 列表转对象,(arr: [], key: string, value: string): object - arrayDistinct: 数组去重,(arr: any[], iteratee?: Function | string): any[] - arrayGroupBy: 数组分组,(array: [], iteratee: Function | string): object - arraySameAbove: 默认同上,(arr: any[], props: string | string[]): any[] ##### Object - objectPick: 创建对象中选中属性的新对象,(obj: object, props: string | string[]): T - objectOmit: 创建对象中忽略属性的新对象,(obj: object, props: string | string[]): T - objectFormatKey: 创建格式化对象键的新对象,(obj: object, format: RegExp | Function): T - objectFormatValue: 创建格式化对象值的新对象,(obj: object, format: RegExp | Function): T - objectFlatten: 创建对象扁平化后的新对象,嵌套层使用”.“连接,(obj: object): object - objectNested: 创建对象嵌套化后的新对象,嵌套层使用”.“连接, (obj: object): object #### Function - promisify: 回调函数快速转换 promise 对象,(fn: Function, \_this?: any): Function - delay: promise 等待函数(毫秒),(time: number): Promise - debounce: 防抖函数(固定延时后触发),(func: Function, wait = 1000): Function - throttle: 节流函数(固定时间内触发),(func: Function, wait = 1000, leading = true): Function - throttleWithArgsList: 节流函数合并参数(固定时间内触发),(func: Function, wait = 1000): Function ##### String - camelCase: 蛇形转驼峰,(str: string): string - snakeCase: 驼峰转蛇形,(str: string): string - padStart: 字符串左侧填充字符,(str: string, length: number, chars: string): string - padEnd: 字符串右侧填充字符,(str: string, length: number, chars: string): string - byteLength: 字符串字节长度,(str: string): number - replaceSubstr: 替换子字符串,(str: string, startLen: number, endLen: number, replace = '\*'): string - strSeparated: 按(倒序)长度分割字符串或数字,(str: string | number, separator = ',', length = 3): string - getFileExtName: 获取文件名后缀,(fileName: string): string ##### Number - toNumber: 转为数字,(num: any): number | boolean - toInt: 转为整数,(num: any): number | boolean - toFixed: 数字精度转换,(num: number | string, digit = 2): number - floatFixed: 强制去除浮点数,(num: number | string): number - digitLength: 获取小数点长度,(num: number | string): number - getUniqueRandom: 生成唯一随机数,(): string - calcAdd: 精准计算(加法),(num1: number | string, num2: number | string): number - calcSubtract: 精准计算(减法),(num1: number | string, num2: number | string): number - calcMultiply: 精准计算(乘法),(num1: number | string, num2: number | string): number - calcDivide: 精准计算(除法),(num1: number | string, num2: number | string): number - meterToFt: 米(m)转英尺(ft),(num: number, digit = 2): number - ftToMeter: 英尺(ft)转米(m),(num: number, digit = 2): number - meter2ToFt2: 平方米(m²)转平方英尺(ft²),(num: number, digit = 2): number - ft2ToMeter2: 平方英尺(ft²)转平方米(m²),(num: number, digit = 2): number - celsiusToFahrenheit: 摄氏度(°C)转华氏度(°F),(num: number, digit = 0): number - fahrenheitToCelsius: 华氏度(°F)转摄氏度(°C),(num: number, digit = 0): number ##### Validate - isObject: 是否为对象,(arg: any): boolean - isArray: 是否为数组,(arg: any): boolean - isRegExp: 是否为正则,(regex: any): boolean - isFunction: 是否为函数,(arg: any): boolean - isBoolean: 是否为布尔值,(arg: any): boolean - isNumber: 是否为数字,(arg: any): boolean - isInt: 是否为整数,(arg: any): boolean - isString: 是否为字符串,(arg: any): boolean - isNumberString: 是否为数字字符串,(arg: any): boolean - isNullOrUndefined: 是否为 null 或 undefined,(arg: any): boolean - isUndefined: 是否为 undefined,(arg: any): boolean - isNull: 是否为 null,(arg: any): boolean - isDate: 是否为日期(?:YYYY-MM-DD HH:mm:ss),isDate(arg: any, format?: string): boolean - isTrueEmpty: 是否为空,(undefined/null/''/NaN),(arg: any): boolean - isEmpty: 是否为空,(isTrueEmpty/[]/{}/0/false),(arg: any): boolean - isChinese: 是否包含中文,(arg: any): boolean - isMobile: 是否为手机号,(arg: string): boolean - isEmail: 是否为邮箱地址,(arg: any): boolean - isBank: 是否为银行卡号,(arg: any): boolean - isVersion: 是否为版本号(X.Y.Z),(arg: any): boolean - isAccount: 是否为账号(字母/数字/下划线/-),(arg: any, min = 5, max = 16): boolean - isPwd: 是否为密码(字母/数字/特殊符,任意 2 种),(arg: any, min = 8, max = 16): boolean ##### Window - getQueryObject 获取 url 参数,(url: string): Record - copyToClipboard 复制到粘贴板,(text: string): boolean - loadScript: 异步加载 script 脚本,(src: string): Promise - getImageSize: 获取图片原始宽高,(src: string): Promise - getFileDataURL: 生成文件 DataURL(图片预览),(file: File): Promise - isFontInstalled: 判断系统是否包含某字体,(fontFamily: string): boolean - getStorage: 获取浏览器储存值(localStorage),(key: string, initValue?: any): T - setStorage: 设置浏览器储存值(localStorage),(key: string, value: T): void - getSession: 获取浏览器储存值(sessionStorage),(key: string, initValue?: any): T - setSession: 设置浏览器储存值(sessionStorage),(key: string, value: T): void