@jcweb-cd/utils
v0.0.1-alpha.7
Published
jcweb基础库-基础工具方法
Readme
jcweb-cd 基础工具库
数组操作
arrayIncludes: 检查数组是否包含指定的元素或元素数组。chunk: 将一维数组按指定大小分割成二维数组。arrayToMap: 将对象数组转换为Map,使用指定的属性作为键。toggleArrayElement: 切换数组中的元素。iterateObjectArray: 遍历对象数组(包括树结构)并对每项执行自定义操作。
树结构操作
calculateNodeLine: 计算树结构中指定节点的行数。arrayToTree: 将对象数组转换为树形结构。filterTreeWithSubtrees: 在树结构中查找匹配的节点并返回它们及其子树。findNodePath: 使用深度优先搜索(DFS)查找树中目标节点的路径。flattenTree: 将树结构数组数据全部一维化的函数。findNodesInTree: 在树形数组中查找所有匹配的节点。findNodesAndAncestorsInTree: 在树结构中查找满足条件的节点,并返回包含这些节点及其祖先的完整树结构。每个节点会添加额外的元数据,如是否匹配、原始索引和层级。findNodeInTree: 在树形数组中查找指定节点。markTreeLevel: 标记树的层级。
对象操作
compareObjects: 比较两个对象,返回它们之间的差异。deepEqual: 判定两个值是否深度相等。deepClone: 深拷贝函数,可以处理循环引用的对象。deepMerge: 深度合并两个对象。defaults: 将默认值应用到给定对象,包括深层嵌套对象。extendObject: 扩展对象的指定属性。flattenNestedObject: 将嵌套对象扁平化为一个数组,保持每个对象的原始结构。filterObjectArray: 高级对象数组过滤函数。pick: 从对象中选取指定的字段并返回一个新的对象。get: 安全地获取对象的嵌套属性值。set: 在嵌套对象或数组中设置值。
字符串处理
constrainPrefixAndLength: 约束字符串前缀和总长度的函数。extractNumbers: 从字符串中提取数字。padStart: 在字符串的开头填充指定的字符,直到字符串达到指定的长度。padEnd: 在字符串的末尾填充指定的字符,直到字符串达到指定的长度。pad: 在字符串的指定位置填充字符,直到字符串达到指定的长度。safeTrim: 安全地去除字符串两端的空白字符。
数值处理
formatDataSize: 格式化数据大小,将字节数转换为更易读的格式。formatNumberToThousands: 将数字转换为带有千分位分隔符的字符串。toFixed: 对浮点数进行精度取舍。random: 生成指定范围内的随机数。randomMultiple: 生成指定范围内的多个随机数。
日期处理
toDate: 将输入转换为 Date 对象。formatDate: 格式化日期函数。getMinutesTimeRange: 获取指定分钟数之前到现在的时间范围。getDateRange: 获取指定天数之前到现在(或昨天)的时间范围。getTodayDateRange: 获取今天的日期范围。getYesterdayDateRange: 获取昨天的日期范围。getCurrentWeekDateRange: 获取本周的日期范围。getLastWeekDateRange: 获取上周的日期范围。getCurrentMonthDateRange: 获取本月的日期范围。getLastMonthDateRange: 获取上月的日期范围。getCurrentQuarterDateRange: 获取本季度的日期范围。getLastQuarterDateRange: 获取上季度的日期范围。getCurrentYearDateRange: 获取今年的日期范围。getLastYearDateRange: 获取去年的日期范围。getHourMilliseconds: 获取给定日期格式的当前日除去天的毫秒数。formatRemainingTime: 将毫秒数格式化为剩余时间字符串。splitTimeInterval: 将时间区间按指定间隔分割。isTimeContained: 判断一个时间点或时间区间是否被另一个时间区间包含。
JSON 处理
jsonParse: 安全地解析 JSON 字符串。jsonStringify: 安全地将 JavaScript 对象转换为 JSON 字符串。
类型检查
typeof2: 判定准确的数据类型并实现类型收窄。isNumber: 判断值是否为数字类型。isString: 判断值是否为字符串类型。isBoolean: 判断值是否为布尔类型。isNull: 判断值是否为 null。isUndefined: 判断值是否为 undefined。isError: 判断值是否为 Error 对象。isSymbol: 判断值是否为 Symbol 类型。isBigInt: 判断值是否为 BigInt 类型。isRegExp: 判断值是否为正则表达式对象。isArray: 判断值是否为数组。isObject: 判断值是否为对象(不包括数组和 null)。isDate: 判断值是否为 Date 对象。isAsyncFunction: 判断值是否为异步函数。isFunction: 判断值是否为函数(包括异步函数)。isElement: 判断值是否为 DOM 元素。isMap: 判断值是否为 Map 对象。isSet: 判断值是否为 Set 对象。isValidDate: 判断值是否为有效的 Date 对象。
其他函数工具
debounce: 创建一个防抖函数。throttle: 创建一个节流函数。isEmpty: 判断值是否为空。triggerDocumentEvent: 手动触发 document 事件的函数。download: 下载文件。downloadByBlob: 下载文件(通过接口获取文件Blob对象下载)。downloadByUrl: 下载文件(通过文件地址直接下载)。SingletonProxy: SingletonProxy 函数。jwtDecode: jwt解码。copyToClipboard: 复制文本到剪贴板。
运行环境
isBrowser: 检查当前环境是否为浏览器环境。isNode: 检查当前环境是否为Node.js环境。getBrowserInfo: 获取浏览器及版本信息。
