摘要:前言在編寫代碼的時(shí)候存在一些對(duì)于數(shù)組的方法,可能涉及的頁(yè)面會(huì)很多,然后每次去寫一堆代碼。長(zhǎng)期下去代碼會(huì)特別的繁多,是時(shí)候進(jìn)行一波封裝了話不多說(shuō)開始書寫優(yōu)美的代碼代碼已上傳,需要的歡迎。
前言
在編寫JavaScript代碼的時(shí)候存在一些對(duì)于數(shù)組的方法,可能涉及的頁(yè)面會(huì)很多,然后每次去寫一堆代碼。長(zhǎng)期下去代碼會(huì)特別的繁多,是時(shí)候進(jìn)行一波封裝了,話不多說(shuō)開始書寫優(yōu)美的代碼
代碼已上傳github,需要的歡迎star(https://github.com/Xieguoiang...)。
關(guān)于數(shù)組一些方法的封裝1.數(shù)組去重
`上文提到的Set的封裝` //ES6新增的Set數(shù)據(jù)結(jié)構(gòu),類似于數(shù)組,但是里面的元素都是唯一的 ,其構(gòu)造函數(shù)可以接受一個(gè)數(shù)組作為參數(shù) //ES6中Array新增了一個(gè)靜態(tài)方法from,可以把類似數(shù)組的對(duì)象轉(zhuǎn)換為數(shù)組 //方法二 new function removeRepeatArray(arr){ return Array.from(new Set(arr)) }
2. 數(shù)組順序打亂
function upsetArr(arr){ return arr.sort(function(){ return Math.random() - 0.5}); }
3. 數(shù)組最大值最小值
//這一塊的封裝,主要是針對(duì)數(shù)字類型的數(shù)組
function maxArr(arr){ return Math.max.apply(null,arr); } function minArr(arr){ return Math.min.apply(null,arr); }
4 數(shù)組求和,平均值
這一塊的封裝,主要是針對(duì)數(shù)字類型的數(shù)組 求商品總價(jià)了 求總數(shù)了 很常用
求和
function sumArr(arr){ var sumText=0; for(var i=0,len=arr.length;i平均值,小數(shù)點(diǎn)可能會(huì)有很多位,這里不做處理 可能你需要保留多少位 自己處理一下吧 ~~
function covArr(arr){ var sumText=sumArr(arr); var covText=sumText/length; return covText }5從數(shù)組中隨機(jī)獲取元素
//類似抽獎(jiǎng)了什么的 適應(yīng)場(chǎng)合很多 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返回?cái)?shù)組(字符串)一個(gè)元素出現(xiàn)的次數(shù)
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... 就不一一列舉 如有需要詳情 請(qǐng)移步我的github~~
字符串以及date日期的封裝列舉3-4個(gè)//
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 查找字符串 字段所出現(xiàn)的次數(shù) ~
function countStr (str,strSplit){ return str.split(strSplit).length-1 }3. 日期的5-7日期日期時(shí)間部分到某一個(gè)時(shí)間的倒計(jì)時(shí)
function getEndTime(endTime){ var startDate=new Date(); //開始時(shí)間,當(dāng)前時(shí)間 var endDate=new Date(endTime); //結(jié)束時(shí)間,需傳入時(shí)間參數(shù) var t=endDate.getTime()-startDate.getTime(); //時(shí)間差的毫秒數(shù) 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 "剩余時(shí)間"+d+"天 "+h+"小時(shí) "+m+" 分鐘"+s+" 秒"; } 如需更多覺(jué)得`用的多的功能的封裝` 歡迎留言/ 大家一起`進(jìn)步`結(jié)語(yǔ)本文列舉了一些常用JS方法的封裝,代碼攏雜是前端一大弊端,希望大家也可以學(xué)習(xí)思路,一起封裝,一起進(jìn)步
goTo--歡迎加群Q 614569041 前端方向
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/92127.html
摘要:前言在編寫代碼的時(shí)候存在一些對(duì)于數(shù)組的方法,可能涉及的頁(yè)面會(huì)很多,然后每次去寫一堆代碼。長(zhǎng)期下去代碼會(huì)特別的繁多,是時(shí)候進(jìn)行一波封裝了話不多說(shuō)開始書寫優(yōu)美的代碼代碼已上傳,需要的歡迎。 前言 在編寫JavaScript代碼的時(shí)候存在一些對(duì)于數(shù)組的方法,可能涉及的頁(yè)面會(huì)很多,然后每次去寫一堆代碼。長(zhǎng)期下去代碼會(huì)特別的繁多,是時(shí)候進(jìn)行一波封裝了,話不多說(shuō)開始書寫優(yōu)美的代碼 代碼已上傳git...
摘要:代碼使用泛型類中不依賴于類型參數(shù)的方法。委托依賴于動(dòng)態(tài)綁定,因?yàn)樗蠼o定的方法調(diào)用可以在運(yùn)行時(shí)調(diào)用不同的代碼段。委托捕獲操作并將其發(fā)送給另一個(gè)對(duì)象。委托可以被看作是在對(duì)象層次上的復(fù)用機(jī)制,而繼承是類層次上的復(fù)用機(jī)制。 大綱 設(shè)計(jì)可復(fù)用的類 繼承和重寫 重載(Overloading) 參數(shù)多態(tài)和泛型編程 行為子類型與Liskov替換原則 組合與委托 設(shè)計(jì)可復(fù)用庫(kù)與框架 API和庫(kù)...
閱讀 2498·2021-08-11 11:16
閱讀 2938·2019-08-30 15:55
閱讀 3337·2019-08-30 12:53
閱讀 1578·2019-08-29 13:28
閱讀 3271·2019-08-28 18:17
閱讀 944·2019-08-26 12:19
閱讀 2475·2019-08-23 18:27
閱讀 712·2019-08-23 18:17