资讯专栏INFORMATION COLUMN

数组方法的封装/代码的复用加强

王军 / 3095人阅读

摘要:前言在编写代码的时候存在一些对于数组的方法,可能涉及的页面会很多,然后每次去写一堆代码。长期下去代码会特别的繁多,是时候进行一波封装了话不多说开始书写优美的代码代码已上传,需要的欢迎。

前言

在编写JavaScript代码的时候存在一些对于数组的方法,可能涉及的页面会很多,然后每次去写一堆代码。长期下去代码会特别的繁多,是时候进行一波封装了,话不多说开始书写优美的代码

代码已上传github,需要的欢迎star(https://github.com/Xieguoiang...)。

关于数组一些方法的封装

1.数组去重

`上文提到的Set的封装`
//ES6新增的Set数据结构,类似于数组,但是里面的元素都是唯一的 ,其构造函数可以接受一个数组作为参数
//ES6中Array新增了一个静态方法from,可以把类似数组的对象转换为数组
//方法二  new 
function removeRepeatArray(arr){
    return Array.from(new Set(arr))
}

2. 数组顺序打乱

function upsetArr(arr){
    return arr.sort(function(){ return Math.random() - 0.5});
}

3. 数组最值最

//这一块的封装,主要是针对数字类型的数组

function maxArr(arr){
    return Math.max.apply(null,arr);
}
function minArr(arr){
    return Math.min.apply(null,arr);
}

4 数组求和平均值
这一块的封装,主要是针对数字类型的数组 求商品总价了 求总数了 很常用
求和

function sumArr(arr){
    var sumText=0;
    for(var i=0,len=arr.length;i

平均值,小数点可能会有很多位,这里不做处理 可能你需要保留多少位 自己处理一下吧 ~~

function covArr(arr){
    var sumText=sumArr(arr);
    var covText=sumText/length;
    return covText
}

5从数组中随机获取元素

//类似抽奖了什么的 适应场合很多
function randomOne(arr) {
    return arr[Math.floor(Math.random() * arr.length)];
}
//randomOne([1,2,3,6,8,5,4,2,6])
//2
//randomOne([1,2,3,6,8,5,4,2,6])
//1

6返回数组(字符串)一个元素出现的次数

function getEleCount (obj, ele) {
    var num = 0;
    for (var i = 0, len = obj.length; i < len; i++) {
        if (ele == obj[i]) {
            num++;
        }
    }
    return num;
}
//getEleCount("asd56+asdasdwqe","a")
//3
//getEleCount([1,2,3,4,5,66,77,22,55,22],22)
//2

... 就不一一列举 如有需要详情 请移步我的github~~

字符串以及date日期的封装

列举3-4个//
1 去除字符串空格 四种情况
去除空格 type 1-所有空格 2-前后空格 3-前空格 4-后空格

function trim(str,type){
    switch (type){
        case 1:return str.replace(/s+/g,"");
        case 2:return str.replace(/(^s*)|(s*$)/g, "");
        case 3:return str.replace(/(^s*)/g, "");
        case 4:return str.replace(/(s*$)/g, "");
        default:return str;
    }
}

2 查找字符串 字段所出现的次数 ~

function countStr (str,strSplit){
    return str.split(strSplit).length-1
}

3. 日期的5-7日期日期时间部分到某一个时间的倒计时

   function getEndTime(endTime){
    var startDate=new Date();  //开始时间,当前时间
    var endDate=new Date(endTime); //结束时间,需传入时间参数
    var t=endDate.getTime()-startDate.getTime();  //时间差的毫秒数
    var d=0,h=0,m=0,s=0;
    if(t>=0){
      d=Math.floor(t/1000/3600/24);
      h=Math.floor(t/1000/60/60%24);
      m=Math.floor(t/1000/60%60);
      s=Math.floor(t/1000%60);
    } 
    return "剩余时间"+d+"天 "+h+"小时 "+m+" 分钟"+s+" 秒";
} 

如需更多觉得`用的多的功能的封装`  欢迎留言/ 大家一起`进步`
结语

本文列举了一些常用JS方法的封装,代码拢杂是前端一大弊端,希望大家也可以学习思路,一起封装,一起进步

goTo--

欢迎加群Q 614569041 前端方向

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92127.html

相关文章

  • 数组方法封装/代码复用加强

    摘要:前言在编写代码的时候存在一些对于数组的方法,可能涉及的页面会很多,然后每次去写一堆代码。长期下去代码会特别的繁多,是时候进行一波封装了话不多说开始书写优美的代码代码已上传,需要的欢迎。 前言 在编写JavaScript代码的时候存在一些对于数组的方法,可能涉及的页面会很多,然后每次去写一堆代码。长期下去代码会特别的繁多,是时候进行一波封装了,话不多说开始书写优美的代码 代码已上传git...

    lmxdawn 评论0 收藏0
  • 第5章:可复用软件构建方法 5.2面向复用构造

    摘要:代码使用泛型类中不依赖于类型参数的方法。委托依赖于动态绑定,因为它要求给定的方法调用可以在运行时调用不同的代码段。委托捕获操作并将其发送给另一个对象。委托可以被看作是在对象层次上的复用机制,而继承是类层次上的复用机制。 大纲 设计可复用的类 继承和重写 重载(Overloading) 参数多态和泛型编程 行为子类型与Liskov替换原则 组合与委托 设计可复用库与框架 API和库...

    DevTalking 评论0 收藏0

发表评论

0条评论

王军

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<