一个现代 JavaScript 实用工具库。[点击查看在线文档]。
npm install ut2一个现代 JavaScript 实用工具库。[点击查看在线文档]。
[![npm][npm]][npm-url]    !npm !GitHub
与其他工具库对比([lodash]、[underscore])
- 大部分是基于 ES2015+ 标准实现的纯函数,没有过多的包装嵌套。
- 使用 TypeScript 实现,提供类型定义。
- 导出 es、cjs、umd 模块格式,支持不同开发环境使用。
兼容现代浏览器 Firefox、Chrome、Safari、Opera,以及 Node.js >= 10 。
如果要兼容 IE 系列浏览器,需要提供相应的 Polyfill 支持,建议使用 @babel/preset-env 设置对应的 targets 。
安装依赖
``shell`
npm install ut2
`shell`
yarn add ut2
`shell`
pnpm add ut2
如果你的项目使用的是原生方式开发,可以在浏览器中使用 script 标签直接引入文件,并使用全局变量 ut2 。
npm 包的 ut2/dist 目录下提供了 UMD 包 ut2.js 以及 ut2.min.js。你也可以直接使用cdn:
- jsdelivr:
- unpkg:
所有方法都在 ut2 模块中。
`javascript
import { debounce } from 'ut2';
const debounced = debounce(() => {
// do something
}, 300);
`
> 下列方法全部在 ut2 模块直接导出,分类只是为了可读性。你可以[点击查看在线文档],了解更多信息。import { throttle, chunk, max } from 'ut2'
>
>
- Array 数组
- chunk - 拆分成多个 size 长度的区块。n
- compact - 剔除假值元素。
- difference - 排除部分值。
- intersection - 交集去重。
- move - 数组元素移动。
- nth - 获取第 个元素。n
- shuffle - 打乱数组。
- union - 并集去重。
- uniq - 数组去重。
- unzip - 数组分组。
- xor - 先并集再排除交集部分。
- zip - 数组参数分组。
- Collection 集合
- countBy - 统计数量。
- every - 检查集合元素都为真值。
- filter - 过滤集合元素。
- find - 查找集合元素。
- forEach - 迭代集合元素。
- forEachRight - 迭代集合元素(从右往左的顺序)。
- groupBy - 对象分组。
- keyBy - 转为对象。
- map - 迭代集合元素生成新数组。
- orderBy - 排序。
- partition - 拆分真值和假值。
- reduce - 累计值。
- reduceRight - 累计值(从右往左的顺序)。
- some - 检查集合元素包含真值。
- Function 函数
- after - 调用 或更多次之后触发。n
- before - 调用次数少于 次之前触发。arguments
- curry - 柯里化函数。
- debounce - 防抖函数。
- delay - 延迟触发。
- limit - 限流函数。
- memoize - 缓存函数结果。
- negate - 否定断言。
- once - 只执行一次。
- partial - 预设部分参数。
- throttle - 节流函数。
- Language 语言
- isArguments - 对象。Array
- isArray - 对象。ArrayBuffer
- isArrayBuffer - 对象。bigint
- isArrayLike - 类数组。
- isArrayLikeObject - 类数组对象。
- isBigInt - 类型或对象。Blob
- isBlob - 对象。Buffer
- isBoolean - 布尔类型或对象。
- isBuffer - 对象。DataView
- isDataView - 对象。Date
- isDate - 对象。Dom
- isElement - 元素。Map
- isEmpty - 空对象、数组、、Set。Error
- isEqual - 深比较。
- isError - 对象。File
- isFinite - 有限数字。
- isFile - 对象。Function
- isFunction - 对象。Map
- isInteger - 整数。
- isLength - 有效的类数组长度。
- isMap - 对象。NaN
- isMatch - 普通对象部分匹配的深比较。
- isNaN - 。undefined
- isNil - 或 null 。null
- isNull - 。Promise
- isNumber - 数字类型或对象。
- isObject - 对象。
- isObjectLike - 类对象。
- isPlainObject - 普通对象。
- isPromiseLike - 类 对象。RegExp
- isRegExp - 对象。Set
- isSafeInteger - 安全整数。
- isSet - 对象。Symbol
- isString - 字符串类型或对象。
- isSymbol - 类型或对象。undefined
- isTypedArray - 类型化数组。
- isUndefined - 。WeakMap
- isWeakMap - 对象。WeakSet
- isWeakSet - 对象。Window
- isWindow - 对象。Symbol
- Math 数学
- ceil - 向上舍入。
- floor - 向下舍入。
- max - 取最大值。
- min - 取最小值。
- round - 四舍五入。
- Number 数字
- clamp - 限制数字范围。
- inRange - 是否在范围内。
- random - 随机小数。
- randomInt - 随机整数。
- Object 对象
- allKeys - 对象自身的可枚举属性(包含 属性)。Symbol
- allKeysIn - 对象自身及继承的可枚举属性(包含 属性)。Symbol
- findKey - 查找对象的键。
- fromPathPairs - 将属性路径/值对的数组转为对象。
- get - 获取对象路径的值。
- invert - 对象自身的可枚举属性(包含 属性)和值反转。Symbol
- keys - 对象自身的可枚举属性(不包含 属性)。Symbol
- keysIn - 对象自身及继承的可枚举属性(不包含 属性)。Symbol
- merge - 递归对象自身的可枚举属性(包含 属性)或数组进行合并。Symbol
- mergeObject - 递归对象自身的可枚举属性(包含 属性)进行合并,支持多个目标对象参数。&
- omit - 排除部分属性。
- omitBy - 根据方法,排除部分属性。
- pathPairs - 将对象转为属性路径/值对的数组。
- pick - 选择部分属性。
- pickBy - 根据方法,选择部分属性。
- set - 设置对象属性路径值。
- unset - 删除对象路径的属性。
- String 字符串
- camelCase - 驼峰小写。
- capitalize - 首字母大写,其余小写。
- escape - 转义 < > " ' 为 HTML 实体字符。RegExp
- escapeRegExp - 转义为 字符串中的特殊字符。&
- kebabCase - 连接符分隔小写。
- lowerCase - 空格分隔小写。
- lowerFirst - 首字母小写。
- pascalCase - 帕斯卡小写。又名大驼峰。
- snakeCase - 下划线分隔小写。
- unescape - 转义字符串中的 HTML 实体字符 < " '。promise
- upperCase - 空格分隔大写。
- upperFirst - 首字母大写。
- words - 拆分词组。
- Util 实用工具
- castArray - 包装成数组。
- conforms - 创建断言对象属性的方法。
- conformsTo - 断言对象属性。
- constant - 返回自身的函数。
- defaultTo - 默认值。
- eq - 等于。
- gt - 大于。
- gte - 大于等于。
- guard - 函数守卫。
- identity - 返回第一个参数的函数。
- list - 迭代执行次数。
- lt - 小于。
- lte - 小于等于。
- noop - 空函数。
- nthArg - 返回指定位置参数的函数。
- range - 创建升序或降序的数字数组。
- retry - 异步函数错误重试。
- sleep - 返回 延迟。
- shallowEqual - 浅比较。
- toFinite - 转为有限数字。
- toInteger - 转为整数。
- toLength - 转为数组长度整数。
- toNumber - 转为数字。
- toPath - 转为属性路径数组。
- toSafeInteger - 转为安全整数。
- toString - 转为字符串。
- tryit - 包装函数为错误优先函数。
- uniqueId - 唯一 ID。
- GLOBAL 其他导出的成员
- MAX_ARRAY_LENGTH - 最大数组长度。
- MAX_SAFE_INTEGER - 最大安全整数。
- MIN_SAFE_INTEGER - 最小安全整数。
- VERSION - 当前版本号。
- isBrowser - 当前运行环境是否为浏览器。
- root - 全局对象。
[npm]: https://img.shields.io/npm/v/ut2.svg
[npm-url]: https://npmjs.com/package/ut2
[lodash]: https://lodash.com/underscore`]: https://underscorejs.org/
[
[点击查看在线文档]: https://caijf.github.io/ut2/index.html