摘要:前言在編寫代碼的時候存在一些對于數組的方法,可能涉及的頁面會很多,然后每次去寫一堆代碼。長期下去代碼會特別的繁多,是時候進行一波封裝了話不多說開始書寫優美的代碼代碼已上傳,需要的歡迎。
前言
在編寫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 前端方向
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/51587.html
摘要:前言在編寫代碼的時候存在一些對于數組的方法,可能涉及的頁面會很多,然后每次去寫一堆代碼。長期下去代碼會特別的繁多,是時候進行一波封裝了話不多說開始書寫優美的代碼代碼已上傳,需要的歡迎。 前言 在編寫JavaScript代碼的時候存在一些對于數組的方法,可能涉及的頁面會很多,然后每次去寫一堆代碼。長期下去代碼會特別的繁多,是時候進行一波封裝了,話不多說開始書寫優美的代碼 代碼已上傳git...
摘要:代碼使用泛型類中不依賴于類型參數的方法。委托依賴于動態綁定,因為它要求給定的方法調用可以在運行時調用不同的代碼段。委托捕獲操作并將其發送給另一個對象。委托可以被看作是在對象層次上的復用機制,而繼承是類層次上的復用機制。 大綱 設計可復用的類 繼承和重寫 重載(Overloading) 參數多態和泛型編程 行為子類型與Liskov替換原則 組合與委托 設計可復用庫與框架 API和庫...
閱讀 1561·2021-11-19 09:55
閱讀 2782·2021-09-06 15:02
閱讀 3549·2019-08-30 15:53
閱讀 1092·2019-08-29 16:36
閱讀 1239·2019-08-29 16:29
閱讀 2290·2019-08-29 15:21
閱讀 627·2019-08-29 13:45
閱讀 2685·2019-08-26 17:15