前言
在編寫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 前端方向