前端js基础库的初封装 z-zframework.js

     第一次写博客,写的如果不好,请大家多多见谅指导。

     我本身是后端开发人员,之前公司没有招到前端,所以我兼顾前端的开发开发工作,但是在开发过程中,总感觉前端基础函数不够丰富。所以一直有想封装前端基础库的想法,这几天整好有空,工作内容稍微少点,就封装了一些前端常用的基本函数,目前库还在完善中,有许多欠缺的地方需要完善,也请大家多多提出意见。

    该基础库的定位:

    在我们开发当中,总会遇到一些划分的问题,不知划分的原则是什么。从而导致一些划分内容的定位比较模糊。那么,如何解决这个问题呢。在数学中,我们都学过函数,在界定函数的范围的时候,我们是通过元素具有的性质,去划分一个集合的范围,同样在类的成员划分、模块的划分、业务的划分、微服务的划分等等,都同样适用。好了,说跑偏了,进入正题。

    该库的定位,也可以理解为边界(界限),为避免与业务存在强耦合关系,而导致类库定位不清晰,该库只封装与业务无关的数据结构及算法相关的内容,和业务相关的数据机构及算法不应封装进入。如果要封装针对通用业务的具体内容,应封装针对于该业务定位的具体类库,该类库定位为基础库,只封装不针对业务的平台通用数据结构及算法。

 目前最新版本(version):0.2

 目前函数分类:object相关、array相关、date相关、通用函数相关

 目前支持接口:

    1:object(对象)相关

        //判断对象是否为空;出参(bool):true为是,false为否

      (1)$z.obj.isNull(obj);   

       //判断对象是否为空或者为空字符串  出参(bool):true为是,false为否

      (2)$z.obj.isNullOrEmpty(obj);  

       //指定对象是否等于当前对象

       (3)$z.obj.referenceEquals(obj1,obj2);

    2:array(数组)相关

        //判断数组是否为空或长度是否为0 出参(bool):true为是,false为否

       (1)$z.array.isNullOrZero(array)   

        //判断是否为数组;出参(bool):true为是,false为否

       (2)$z.array.isArray(array) 

        //清空数组;void

       (3)$z.array.clear(array) 

        //获取最大值;出参(number)

       (4)$z.array.max(array) 

        //获取最小值;出参(number)

       (5)$z.array.min(array) 

        //是否存在条件匹配的元素;出参(bool):true为是,false为否

       (6)$z.array.exists(array,function(item){

             return item.name==‘张三‘

         });

        //查找符合条件的元素;出参(array)

       (7)$z.array.find(array,function(item){

            return item.name==‘张三‘

        });

        //查找符合条件的元素,如果多个值相同类型或相同引用或相同值,则返回第一个索引值

       (8)$z.array.indexOf(array,element);

        //获取元素的总和

       (9)$z.array.sum(array);

        //获取元素指定属性的总和

       (10)$z.array.sumBy(array,function(item){

             return item.money;

         });

        //返回指定条数的集合

       (11)$z.array.take(array,num);

       //跳过N行元素的集合

       (12)$z.array.skip(array,num);

        //返回指定元素的集合

       (13)$z.array.select(array,function(item){

             return item.money;

         });

        //计算数值序列的平均值

       (14)$z.array.average(array);

        //指定元素的平均值

       (15)$z.array.averageBy(array,function(item){

             return item.money;

        });

       //根据索引获取元素

       (16)$z.array.get(index);

       //根据索引获取元素

       (17)$z.array.maxBy(arr,function(item){

          return item.money;

         });

       //根据索引获取元素    

       (18)$z.array.minBy(arr,function(item){

          return item.money;

         });

    3:date(时间)相关

        //将日期时间转换为指定格式,如:YYYY-mm-dd HH:MM:ss表示2019-06-06 19:45:50

       (1)$z.date.dateFormat(fmt,date);

        //获取当前短日期YYYY-mm-dd

        (2)$z.date.getDate();

        //获取当前长日期YYYY-mm-dd HH:MM:SS

        (3)$z.date.getLongTime();

    4:函数相关

        //对象或数组循环

       (1)$z.each(arr,function(item,index){

          });

       (2)迭代器

         var arr = [1, 2, 3, 4, 5];

          var res = $z.iterator(arr);

          while (res.hasNext()) {

            var item = res.next();

            console.log(item);

             console.log(res.getIndex());

          }

        (3)传输对象管理器 

        var res = $z.transfer();

        res.insert(1);

        res.insert(2);

        res.insert(3);

        res.remove(2);

        res.modify(3, 6);

        res.getArray();

        res.execute(function (item) {

            console.log(item);

        }); 

       res.clear();

 

github地址:https://github.com/yoheng2016/z-framework

前端js基础库的初封装 z-zframework.js

上一篇:PHP2


下一篇:说说数据库连接池工作原理和实现方案?