TS + Rollup, native implementation, without relying on any third-party libraries, outputs products of three module modes: ESM, CJS, and UMD
-
Type
- isString
- isBoolean
- isNumber
- isUndefined
- isNull
- isNullOrUnDef
- isPrimitive
- isFunction
- isObject
- isArray
- typeIs
- isJsonString
-
encode/decode
- weAtob
- weBtoa
-
Array
- arrayLike 判断类数组
- arrayEachAsync 异步遍历数组,可中断,支持倒序
-
Tree
- forEachDeep 高性能的深度优先遍历函数, 支持continue、break,可定制id、children
- forEachMap 高性能的深度优先遍历的Map函数, 支持continue、break,可定制id、children
- searchTreeById 在树中找到 id 为某个值的节点,并返回上游的所有父级节点
- formatTree 高性能的数组转树函数
- flatTree 树转数组
- fuzzySearchTree 模糊搜索函数,返回包含搜索字符的节点及其祖先节点的树
-
Object
- isPlainObject
- objectHas
- objectAssign 合并
- objectEach
- objectEachAsync
- objectGet
-
Number
- formatNumber
-
String
- stringCamelCase
- stringKebabCase
- parseQueryParams
-
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
- getStrWidthPx
-
Watermark (web)
- genCanvasWM
-
Clipboard (web)
- copyText
npm i sculp-js
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'];