@guohanmin/utils
v1.0.0共享工具函数库:整合 radash / luxon / nanoid / qs 的高频方法
pnpm add @guohanmin/utils27 public exports, grouped by kind.
Functions
- customAlphabetFunction
用自定义字符集生成一个 ID 生成函数,适合需要限定字符范围的场景(如纯数字验证码)
View details - nanoidFunction
生成一个随机、URL-safe 的唯一 ID(默认 21 个字符,碰撞概率极低)
View details - parseFunction
把 query string 解析成对象(支持还原嵌套对象/数组结构,和 `stringify` 互为逆操作)
View details - rangeFunction
生成一个惰性数字序列的生成器(配合 `for...of` 使用),大范围场景比直接生成数组更省内存
View details - stringifyFunction
把对象序列化成 query string(自动处理嵌套对象/数组,默认用 `&` 连接、`[]` 表示数组下标)
View details - zipFunction
把多个数组按相同下标"拉链式"配对,返回配对后的元组数组
View details
Classes
Variables
- alphabeticalVariable
按 `getter` 返回的字符串对数组做字母序排序,第三个参数可选 `'asc' | 'desc'`
View details - assignVariable
把两个对象递归合并成一个新对象,`override` 里的值会覆盖 `initial`(仅对子对象属性递归)
View details - cloneVariable
对值做浅拷贝(基本类型原样返回,对象/数组会创建一个新的顶层拷贝)
View details - debounceVariable
生成一个防抖函数:调用停止 `delay` 毫秒后才真正执行 `func`,期间的重复调用会重置计时。 返回的函数额外带有 `cancel`(取消防抖,之后的调用会立即执行)、`isPending`、`flush`(立即执行)方法。
View details - firstVariable
取数组的第一个元素,数组为空时返回默认值(默认为 `undefined`)
View details - getVariable
用字符串路径(支持 `.` 和 `[]`)安全地读取嵌套对象/数组里的值,读取不到时返回默认值
View details - groupVariable
按 `getGroupId` 返回的分组标识把数组分组,得到 `{ 分组标识: 该组元素数组 }` 的对象
View details - lastVariable
取数组的最后一个元素,数组为空时返回默认值(默认为 `undefined`)
View details - listVariable
立即生成一个数字(或自定义值)组成的数组,用法和 `range` 一致,区别是直接返回数组而非生成器
View details - mapValuesVariable
遍历对象的每个 value(同时可拿到对应的 key),返回一个 value 被转换后的新对象
View details - memoVariable
对函数做记忆化缓存:相同参数(默认按参数 JSON 序列化作为 key)只会真正计算一次, 可选 `ttl`(毫秒)指定缓存过期时间,超时后会重新计算。
View details - omitVariable
从对象中排除指定的若干个 key,返回剩余属性组成的新对象
View details - pickVariable
从对象中挑选指定的若干个 key,返回只包含这些 key 的新对象
View details - retryVariable
失败自动重试指定次数的异步函数执行器,支持固定 `delay` 或按尝试次数计算的 `backoff` 等待时间。
View details - shakeVariable
移除对象中满足过滤条件的属性,默认移除值为 `undefined` 的属性
View details - sortVariable
按 `getter` 返回的数字对数组排序,不修改原数组,返回排好序的新数组
View details - throttleVariable
生成一个节流函数:`interval` 毫秒内只会执行一次 `func`,期间的调用会被丢弃。 返回的函数额外带有 `isThrottled` 方法,用于查询当前是否处于节流窗口内。
View details - uniqueVariable
从数组中去重,返回新数组;可传入 `toKey` 把每个元素映射成一个可比较的标识值再去重
View details