sculp-js
v1.4.1
Published
js工具库
Downloads
10
Maintainers
Readme
sculp-js
TS + Rollup, native implementation, without relying on any third-party libraries, outputs products of three module modes: ESM, CJS, and UMD
Features
Type
- isString
- isBoolean
- isNumber
- isUndefined
- isNull
- isPrimitive
- isObject
- typeIs
Array
- arrayLike 判断类数组
- arrayEachAsync 异步遍历数组,可中断,支持倒序
Tree
- forEachDeep 高性能的深度优先遍历函数, 支持continue、break,可定制id、children
- forEachMap 高性能的深度优先遍历的Map函数, 支持continue、break,可定制id、children
- searchTreeById 在树中找到 id 为某个值的节点,并返回上游的所有父级节点
- formatTree 高性能的数组转树函数
- fuzzySearchTree 模糊搜索函数,返回包含搜索字符的节点及其祖先节点的树
Object
- isPlainObject
- objectHas
- objectAssign 合并
- objectEach
- objectEachAsync
- objectGet
Number
- formatNumber
String
- stringCamelCase
- stringKebabCase
- getStrWidthPx (web)
Unique
- uniqueString
- uniqueNumber
Date
- formatDate
- dateToStart
- dateToEnd
- calculateDate
- calculateDateTime
Download (web)
- downloadURL
- downloadHref
- downloadBlob
- downloadData
File (web)
- chooseLocalFile
- compressImg 压缩图片
Dom (web)
- hasClass
- addClass
- removeClass
- setStyle
- getStyle
- getComputedCssVal
Watermark (web)
- genCanvasWM
Clipboard (web)
- copyText
Install
npm i sculp-js
Usage
import { forEachDeep } from 'sculp-js';
const tree = [
{ id: 1, name: 'row1' },
{
id: 2,
name: 'row2',
children: [{ id: 21, name: 'row2-1' }]
},
{ id: 3, name: 'row3' }
];
const arr = [];
forEachDeep(tree, ({ id, name }) => {
arr.push(name);
});
// arr will be: ['row1', 'row2', 'row2-1', 'row3'];