zoukankan      html  css  js  c++  java
  • PHP实现几种经典算法详解

    前言

    在编写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<len;i++){
            sumText+=arr[i];
        }
        return sumText
    }
    
    

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

    
    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://segmentfault.com/a/1190000017002969

  • 相关阅读:
    Step by Step To Create a K8S Cluster
    Linux简单操作指令
    安装redis 最新版 redis-6.2.6
    GCC升级到11.2.0
    SQL开窗函数
    SQL 树形结构递归查询
    一文详解python的类方法,普通方法和静态方法
    _new_()与_init_()的区别
    关于Python的import机制原理
    【原创】android内存管理-hprof文件
  • 原文地址:https://www.cnblogs.com/lalalagq/p/9962040.html
Copyright © 2011-2022 走看看