自制工具脚手架
欢迎提问题,欢迎start, 欢迎补充pr
TODO
- 整体架构第一阶段趋于稳定
- 单元测试
- 待完善文档
开始(Getting Started)
安装(Install)
建议默认安装最新的,不要加版本号,新功能会不断的加入
npm i js-wheels -S
模块引入
// webpack es6const JSW =
直接引入
<!-- 直接引入的全局变量为 JsWheels -->JsWheels.chunck([1, 2, 3, 4, 5], 2) // [[1, 2], [3, 4], [5]]
用法(Usage Example)
Array
JSW // [[1, 2], [3, 4], [5]]JSW // [1, 4] 差集JSW // [2, 3] 并集JSW // [1, 2, 3] 扁平化数组JSW // [3]JSW // 删除指定元素JSW // 二分查找
Object
filterObjectBy
/*** @param arrayObj 数组包裹的对象* @param mark 对象的key*/JSW// [{a:1},{a:3},{a:4}] 根据对象某一个属性进行去重
cloneDeep
/*** @param {Array Object} obj 数组或者对象*/JSW
chaining
解决ajax数据异步返回,导致渲染模板报错undefined
用Vue举个例子{{{ chaining(data, 'name.age.go', '加载中...') }}}
/*** https://github.com/tc39/proposal-optional-chaining* https://www.mmxiaowu.com/article/5b18d19f2f52003e4d38c639* @param* @param * @param * use:* const data = {* name: {* age: {* go: 27* }* },* age: 38* }*/JSW // 27JSW // 加载中...JSW // 38
proxy
/** * @param * @param * @example 拦截由于数据为空导致报错undefined 与chaining方法功能一样 * const test = { * a: 123, * b: 456, * list: { * dog: '旺旺' * } * } */// 最后调用放入无参数时默认值JSW // 123JSWa // {dog: '旺旺'}JSWalist // 默认值
arrToHash
数组对象 => 转为双map结构
/** * @param * @param * 数组对象转map map 结构 * @example * [{ * id: 1, * name: 'biyuqi', * age: 26 * }, * { * id: 2, * name: 'bailemen', * age: 101 * } * @return * { * 1: { * name: 'biyuqi', * age: 26 * }, * 2:{ * name: 'bailemen', * age: 101 * } * } */ JSW
Browser
JSWinBrowser // booleanJSWinWeex // booleanJSWweexPlatform // booleanJSWUA // StringJSWisIE // booleanJSWisIE9 // booleanJSWisIE10 // booleanJSWisIE11 // booleanJSWisEdge // booleanJSWisAndroid // booleanJSWisIOS // booleanJSWisChrome // boolean
Is
JSW // trueJSW // trueJSW // trueJSW // trueJSW // trueJSWisMap // trueJSW // trueJSW // trueJSW // falseJSW // trueJSW // true
Time
JSW // 5 days agoJSW // 5天前
String
JSW // 123JSW // 456JSW // 789JSW // jsjs
Other
/*** 格式化请求参数* @param {{ query }} Object* {* key: '123',* name: 'byq',* test: ''* }* key=123&name=byq*/JSW