es6 数组的工具类
根据Es6中map和Set的特性,实现了对array的分组和转换操作。
exports.mapToObj = function (strMap) { let obj = Object.create(null); for (let [k,v] of strMap) { obj[k] = v; } return obj; }; exports.objToMap = function (obj) { let strMap = new Map(); for (let k of Object.keys(obj)) { strMap.set(k, obj[k]); } return strMap; }; exports.groupBy = function (values, key) { let map = new Map(); for (let value of values) { if (!value.hasOwnProperty(key)) { return []; } let groupkey = value[key]; let groupSet = map.get(groupkey) || new Set(); groupSet.add(value); map.set(groupkey, groupSet); } return map; }; exports.distinct=function (values) { if(!Array.isArray(values)) throw new Error("invalid param"); return [...new Set(values)]; };
如上,这样利用es6的特性,不用再引入loadash等类库,需要其他功能均可方便的实现。
发句感慨,写代码就像做一件艺术品,要有所追求,不要草草了事,有匠心也有意思。
本人全手工打造的dotnetcore webapi 框架,可实现快速开发。地址:https://github.com/ryansecret/WebApiCore.git。
1 采用DDD模式开发,充血模型
2 添加Dapper扩展,默认实现增删改查基本操作。利用AutoMapper 做实体转换,减少重复劳动。
3 依赖注入融合Autofac,仓储层和应用层自动注入
4 实现JWT验证
5 加入swagger 文档
6 单元测试添加了xunit,MyMvc 可以方便对webapi测试
7 数据库版本控制