摘要:前言在编写代码的时候存在一些对于数组的方法,可能涉及的页面会很多,然后每次去写一堆代码。长期下去代码会特别的繁多,是时候进行一波封装了话不多说开始书写优美的代码代码已上传,需要的欢迎。
前言
在编写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]) //16返回数组(字符串)一个元素出现的次数
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/51587.html
摘要:前言在编写代码的时候存在一些对于数组的方法,可能涉及的页面会很多,然后每次去写一堆代码。长期下去代码会特别的繁多,是时候进行一波封装了话不多说开始书写优美的代码代码已上传,需要的欢迎。 前言 在编写JavaScript代码的时候存在一些对于数组的方法,可能涉及的页面会很多,然后每次去写一堆代码。长期下去代码会特别的繁多,是时候进行一波封装了,话不多说开始书写优美的代码 代码已上传git...
摘要:代码使用泛型类中不依赖于类型参数的方法。委托依赖于动态绑定,因为它要求给定的方法调用可以在运行时调用不同的代码段。委托捕获操作并将其发送给另一个对象。委托可以被看作是在对象层次上的复用机制,而继承是类层次上的复用机制。 大纲 设计可复用的类 继承和重写 重载(Overloading) 参数多态和泛型编程 行为子类型与Liskov替换原则 组合与委托 设计可复用库与框架 API和库...
阅读 1557·2021-11-19 09:55
阅读 2780·2021-09-06 15:02
阅读 3536·2019-08-30 15:53
阅读 1079·2019-08-29 16:36
阅读 1232·2019-08-29 16:29
阅读 2287·2019-08-29 15:21
阅读 624·2019-08-29 13:45
阅读 2681·2019-08-26 17:15